DEBUG / SntpClient(70):请求时间失败:java.net.SocketException:Android上的协议不支持的地址族

时间:2011-07-03 08:23:39

标签: java android network-programming android-networking

我创建了这样的代码:

try {
    int ct_id;
    String ct_name;
    try{
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost("http://10.0.2.2/update.php");
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
        HttpResponse response = httpclient.execute(httppost);
        HttpEntity entity = response.getEntity();
        is = entity.getContent();
    }catch(Exception e){
        Log.e("log_tag", "Error in http connection"+e.toString());
    }
    //convert response to string
    try{
        BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
        sb = new StringBuilder();
        sb.append(reader.readLine() + "\n");
        String line="0";
        while ((line = reader.readLine()) != null) {
            sb.append(line + "\n");
        }
        is.close();
        result=sb.toString();
    }catch(Exception e){
        Log.e("log_tag", "Error converting result "+e.toString());
    }
    //paring data
    int max = 0;
    try{
        jArray = new JSONArray(result);
        JSONObject json_data=null;
        for(int i=0;i<jArray.length();i++){
            json_data = jArray.getJSONObject(i);
            ct_id=json_data.getInt("max(id)");
            ct_name=json_data.getString("date");
            max = ct_id;
        }
    }
    catch(JSONException e1){

} catch (ParseException e1) {
    e1.printStackTrace();
}

但是当我调试它时出现了:

07-03 08:50:42.657: DEBUG/SntpClient(70): request time failed: java.net.SocketException: Address family not supported by protocol
那是什么意思?以及如何解决它?

1 个答案:

答案 0 :(得分:0)

这看起来像是一个本地网址,你确定你的apache在端口80上运行吗?您可以尝试在桌面浏览器中访问此网址http://10.0.2.2/update.php并正确查看内容。仅当套接字无法与服务器建立连接时,才会出现此错误。