Tom*_*tin 2 java https facebook
我正在使用Apache提供的Java DefaultHttpClient来发布删除我们通过此处描述的/ app_id/accounts/test-users端点注册的测试用户http://developers.facebook.com/docs/test_users/
返回的响应是以下HTML:
<HTML><HEAD>
<TITLE>400 Bad Request</TITLE>
</HEAD><BODY>
<H1>Method Not Implemented</H1>
Invalid method in request<P>
</BODY></HTML>
Run Code Online (Sandbox Code Playgroud)
使用DefaultHttpClient POST和GET到测试用户api工作正常,它只是发送问题的DELETE.同时我也可以使用Python脚本,通过curl和使用Firefox REST Client扩展来实现DELETE(对于相同的用户和访问令牌).
有没有人知道错误意味着什么,或者在使用Facebook Graph API使用DefaultHttpClient时是否存在任何已知问题/陷阱?
更新:我已经尝试使用tcpdump分析不同的请求,正如Peter在评论中所建议的那样:sudo tcpdump -i eth2
但我所看到的只是数据包在我和Facebook之间来回传递,这似乎是诊断问题的一种低级方法.
似乎Facebook不想接受包含内容的DELETE请求,无论出于何种原因,DefaultHttpClient(和HttpUrlConnection,我也尝试过)要么不设置内容长度标头,要么设置为正值.我发现的修复是手动将内容长度标头设置为零.例如:
HttpDelete deleteMethod = new HttpDelete(url);
deleteMethod.setHeader("Content-Length", "0");
HttpResponse httpResponse = client.execute(deleteMethod);
String responseContent = EntityUtils.toString(httpResponse.getEntity(),"UTF-8");
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1870 次 |
最近记录: |