Java 请问如何将此Curl请求移植到Android?
我正试图从我的Android应用程序中获取PayPal Oauth刷新令牌 就像在这个链接中一样 在Curl中,实现这一目标的要求如下:Java 请问如何将此Curl请求移植到Android?,java,android,curl,Java,Android,Curl,我正试图从我的Android应用程序中获取PayPal Oauth刷新令牌 就像在这个链接中一样 在Curl中,实现这一目标的要求如下: curl 'https://api.paypal.com/v1/oauth2/token' \ -H "Content-Type: application/x-www-form-urlencoded" \ -H "Authorization: Basic QWZV...==" \ -d 'grant_type=authorization_code&re
curl 'https://api.paypal.com/v1/oauth2/token' \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Authorization: Basic QWZV...==" \
-d 'grant_type=authorization_code&response_type=token&redirect_uri=urn:ietf:wg:oauth:2.0:oob&code=EBYhRW3ncivudQn8UopLp4A28...'
请问如何从Android应用程序中执行此操作?
我试过这样做:
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("https://api.paypal.com/v1/oauth2/token");
try {
httppost.addHeader("Content-Type", "x-www-form-urlencoded");
httppost.addHeader("Authorization", "Basic QWZV...==");
StringEntity se=new StringEntity("grant_type=authorization_code&response_type=token&redirect_uri=urn:ietf:wg:oauth:2.0:oob&code="+authorization.getAuthorizationCode());
httppost.setEntity(se);
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
但我收到了400个错误的请求响应。您尝试的
内容类型
标题完全错误。它不会将任何数据-d
发布到服务器。因此,您得到了错误的请求错误
替换您的一个:
httppost.addHeader("Content-Type", "x-www-form-urlencoded");
以下为一(请注意两者之间的区别):
使用HttpUrlConnection或apachehttp客户端,然后告诉我们什么不起作用。@Mighter谢谢Mighter,请查看我的编辑。再见。LISA@LisaAnne问题解决了吗?非常感谢Sabuj,我尝试了您的修改,不幸的是又一次400个错误请求:-(@LisaAnne lol。您需要向我们提供您得到的响应。例如,
response.getEntity().getContent()的输出)
。请使用此响应更新您的问题。您是对的,响应。getEntity().getContent()
显示:{“错误”:“无效的请求”,“错误描述”:“客户端id和客户端机密都是必需参数”}
因此您的方法有效,我必须修复其余部分…谢谢!!!@SabujHassan是内容还是内容
httppost.addHeader("content-type", "application/x-www-form-urlencoded");