【问题标题】:HttpPost return a json string different respect the one of the browserHttpPost 返回一个 json 字符串,与浏览器不同
【发布时间】:2013-02-28 06:00:53
【问题描述】:

当我去

https://api.github.com/users/jkirkell/gists

我收到一个包含良好数据的 json。

[
  {
    "url": "https://api.github.com/gists/5143977",
    "forks_url": "https://api.github.com/gists/5143977/forks",
    "commits_url": "https://api.github.com/gists/5143977/commits",
    "id": "5143977",
    etc.

但如果我用这段代码读取相同的地址:

String jsonString = null;
InputStream is = null;

HttpResponse response = null;
try{
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost("https://api.github.com/users/jkirkell/gists");
        response = httpclient.execute(httppost);
}catch(Exception e){
        throw e;
}

我收到这个 json 字符串:

{"message":"Not Found"}

我的代码有什么问题?

【问题讨论】:

    标签: android json post https


    【解决方案1】:

    这是 Get 请求,但您使用的是 HTTP 发布。

    试着像这样阅读

    int k=0;

       URL url = new URL(yoururl);
             InputStream input=url1.openStream();
             BufferedInputStream bis=new BufferedInputStream(input);
             ByteArrayBuffer baf=new ByteArrayBuffer(1000);
             while((k=bis.read())!=-1)
             {
             baf.append((byte)k);
             }
            String data=new String(baf.toByteArray());
    

    【讨论】:

      【解决方案2】:

      您应该使用HttpGet 而不是HttpPost

      HttpClient httpclient = new DefaultHttpClient();
      HttpGet request = new HttpGet("https://api.github.com/users/jkirkell/gists");
      response = httpclient.execute(request);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-03-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多