从Android进行JSON POST时的空白响应

时间:2013-10-02 06:58:07

标签: android json

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

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) {
}

3 个答案:

答案 0 :(得分:0)

尝试通过此方式获得您的回复

if (response.getStatusLine().getStatusCode() == 200)
{
    HttpEntity entity = response.getEntity();
    json = EntityUtils.toString(entity);
}

答案 1 :(得分:0)

你正在捕捉Exception(超级类)而没有记录。如果你的try块中出现任何类型的异常,代码将跳转到catch而没有任何日志。

改变这个:

catch(Exception e){

                }

catch (Exception e)
    Log.e("myappname", "exception", e);
}

答案 2 :(得分:0)

如果没有回复,你一定要检查你的捕获异常e,因为你没有在条款中写任何东西,可能会发生一些事情,但你没有注意到。