0

我有这个字符串(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();
        /*...*/

它不作为一种形式出现。我怎样才能做到这一点?我肯定错过了什么。谢谢。

4

1 回答 1

0

您必须按如下方式拆分您的 postInfo 并检查编码网站为该帖子所采用的编码。通常是 UTF-8

//设置内容类型

httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded;charset=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"));

于 2013-07-25T22:39:19.380 回答