Android - HTTP GET Request

后端 未结 4 2122
迷失自我
迷失自我 2020-12-29 12:30

I have developed a HTTP GET Method that clearly works.

public class GetMethodEx {


public String getInternetData() throws Exception{

        new TrustAllMa         


        
4条回答
  •  情深已故
    2020-12-29 13:18

    You have an error here:

    URI website = new URI("https://https://ts.xoomworks.com:8443/XoomworksTimesheets/ping");
    

    You are using "https://" twice.

    EDIT: I got the code from here

    Your code should look like:

    HostnameVerifier hostnameVerifier = org.apache.http.conn.ssl.SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER;
    
    DefaultHttpClient client = new DefaultHttpClient();
    
    SchemeRegistry registry = new SchemeRegistry();
    SSLSocketFactory socketFactory = SSLSocketFactory.getSocketFactory();
    socketFactory.setHostnameVerifier((X509HostnameVerifier) hostnameVerifier);
    registry.register(new Scheme("https", socketFactory, 8443));
    SingleClientConnManager mgr = new SingleClientConnManager(client.getParams(), registry);
    DefaultHttpClient httpClient = new DefaultHttpClient(mgr, client.getParams());
    
    // Set verifier      
    HttpsURLConnection.setDefaultHostnameVerifier(hostnameVerifier);
    
    // Example send http request
    final String url = "https://ts.xoomworks.com:8443/XoomworksTimesheets/ping/";
    HttpPost httpPost = new HttpPost(url);
    HttpResponse response = httpClient.execute(httpPost);
    
    response.getStatusLine().getStatusCode();
    
    in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
    StringBuffer sb = new StringBuffer("");
    String l = "";
    String nl = System.getProperty("line.separator");
    while ((l = in.readLine()) !=null){
        sb.append(l + nl);
    }
    in.close();
    data = sb.toString();
    return data;
    

    I did not test it on my end, but it should work. Note you are using the port 8433 instead of 433, so I changed it in the socketfactory scheme.

提交回复
热议问题