我有这个字符串(postInfo):
"Content-Type=application/x-www-form-urlencoded&grant_type=refresh_token
&refresh_token=1/bNKLGjsbgYwkNytEwpNhgfTyuDs34Klkjtqp2AZKnqs&
client_secret=mySecret&client_id=my_id.apps.googleusercontent.com"
我需要能够将其发送到HttpPost
才能完成其工作等等。我一直在Android中测试它,但除非它是一个键值对,否则它将无效。如果字符串总是相同的话我会解析它,但我无法保证。在测试时我意识到它为什么没有工作。它不作为表单包含在请求正文中。有趣的是,在iOs中它确实没有太多工作。这是我的java:
public String post(String leUri, String data) {
/*=https://accounts.google.com/o/oauth2/token*/
HttpPost httpPost = new HttpPost(leUri);
try {
httpPost.setEntity(new StringEntity(postInfo));
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
return "An Error Ocurred";
}
try {
HttpResponse response = httpClient.execute(httpPost);
HttpEntity entity = response.getEntity();
/*...*/
它不会显示为表单。我怎么能这样做?我肯定错过了什么。感谢。
答案 0 :(得分:0)
您必须按照以下方式拆分邮件信息,并检查编码网站是否正在发布帖子。通常是UTF-8
//设置内容类型
httpPost.setHeader( “内容类型”, “应用程序/ X WWW的窗体-urlencoded;字符集= UTF-8”);
//添加您的数据
httpPost.setEntity(new UrlEncodedFormEntity(“grant_type = refresh_token” &安培; refresh_token = 1 / bNKLGjsbgYwkNytEwpNhgfTyuDs34Klkjtqp2AZKnqs&安培; client_secret = mySecret& client_id = my_id.apps.googleusercontent.com“,”UTF-8“));