-1

我正在尝试使用以下代码将两个 json 编码值发布我的网络服务。但我没有得到任何回应(只是空白输出,LogCat 上没有错误)。但是,我尝试使用cURL将相同的参数从 PHP 发布到我的web服务,效果很好。

HttpClient client = new DefaultHttpClient();
HttpConnectionParams.setConnectionTimeout(client.getParams(), 10000);
HttpResponse response;

try {
    json.put("name","email");
    json.put("email", "email");
    HttpPost post = new HttpPost(url);
    post.setHeader("Content-Type", "application/json");
    post.setHeader("Accept-Encoding", "application/json");
    post.setHeader("Accept-Language", "en-US");

    List<NameValuePair> ad = new ArrayList<NameValuePair>(2);  
    ad.add(new BasicNameValuePair("json", json.toString()));  
    post.setEntity(new UrlEncodedFormEntity(ad));
    Log.i("main", "TestPOST - nVP = "+ad.toString());
    response = client.execute(post);  
    if(response!=null) {
        HttpEntity entity = response.getEntity();
        output =  EntityUtils.toString(entity,HTTP.UTF_8); //Get the data in the entity
    }              
} catch(Exception e) {
}
4

3 回答 3

0

尝试通过这个得到你的回应

if (response.getStatusLine().getStatusCode() == 200)
{
    HttpEntity entity = response.getEntity();
    json = EntityUtils.toString(entity);
}
于 2013-10-02T07:02:12.593 回答
0

如果没有响应,你一定要检查你的 catch 异常 e,因为你没有在子句中写任何东西,可能发生了一些事情但你没有注意到。

于 2013-10-02T07:17:09.277 回答
0

您在没有记录的情况下捕获 Exception (超类)。如果您的 try 块中发生任何类型的异常,代码将跳转到 catch 而没有任何日志。

改变这个:

catch(Exception e){

                }

catch (Exception e)
    Log.e("myappname", "exception", e);
}
于 2013-10-02T07:06:02.287 回答