• android中的httpclient使用


    用php搭建了个简单的服务器端,然后在android中使用httpclient来调用.

    String httpurl="http://192.168.1.100/http/httptest.php?para=hello";
            HttpGet httpGet=new HttpGet(httpurl);
                    HttpParams httpParameters = new BasicHttpParams();// Set the timeout in milliseconds until a connection is established.  
                    HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection);// Set the default socket timeout (SO_TIMEOUT) // in milliseconds which is the timeout for waiting for data.  
                    HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket);  
                    HttpClient httpclient = new DefaultHttpClient(httpParameters);  
                    try{
                     HttpResponse httpResponse=httpclient.execute(httpGet);
                     if (httpResponse.getStatusLine().getStatusCode()==HttpStatus.SC_OK){
                    
                     String strResult=EntityUtils.toString(httpResponse.getEntity());
                     txtHello.setText(strResult);
                     mWebView.loadUrl(httpurl);
                     }
                     else{
                     txtHello.setText("no response");
                     }
                    }catch(IOException e){
                     e.printStackTrace();  

                    } 

    刚开始发现在执行httpclient.execute的时候就没有了响应,程序没有继续执行,也没有报告错误,后来一查,需要加入相应的权限才可以:

     <uses-permission android:name="android.permission.INTERNET" /> 

    这样就可以正确的返回信息了.

    接下来的问题是返回的信息中有中文,在android中显示为乱码,估计是服务器端的问题,于是在php中加入了编码: 

    header("Content-Type: text/html;charset=utf-8"); 

    可以正常显示了. 

  • 相关阅读:
    CCCC L3-015. 球队“食物链”(dfs+剪枝)
    【USACO2.1】解题报告
    【USACO2.1】解题报告
    序列【模拟】
    序列【模拟】
    【JZOJ5184】Gift【DP】【01背包】
    【JZOJ5184】Gift【DP】【01背包】
    【JZOJ5177】TRAVEL【并查集】
    【JZOJ5177】TRAVEL【并查集】
    【JZOJ5178】So many prefix?【KMP】【DP】
  • 原文地址:https://www.cnblogs.com/GarfieldTom/p/2044275.html
Copyright © 2020-2023  润新知