我正在使用 OAuth-Signpost 1.2 来验证对 Magento RESTful 应用程序的请求。
GET 请求很容易使用 HttpURLConnection 来实现,但据我所知,对于 POST 请求,我还必须使用像 Apache HttpComponents HttpClient 这样的库。但是,我无法找出正确的方法。
我目前的代码如下:
public static void try2(OAuthConsumer consumer , String API_URL, String postInput) throws Exception{
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost postRequest = new HttpPost(API_URL);
try {
StringEntity input = new StringEntity(postInput);
input.setContentType("application/json");
postRequest.setEntity(input);
consumer.sign(postRequest);
HttpResponse response = httpClient.execute(postRequest);
if (response.getStatusLine().getStatusCode() != 201) {
System.out.println("Failure. Code: " + response.getStatusLine().getStatusCode());
}
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
但我得到的只是一个错误 500。
以更一般的方式,我的问题是:如何使用 signpost 对 RESTful 应用程序的 POST 请求进行签名?