Java HTTP请求未返回所需的json

Java HTTP请求未返回所需的json,java,json,http,httpclient,Java,Json,Http,Httpclient,我试图向一个网站发送一个http请求,该网站应该返回json响应。问题是我没有得到json数据。但是当我在浏览器中粘贴url时,它会显示json输出。我是个新手。请帮忙 这是我的密码 HttpClient client = new DefaultHttpClient(); String url="http://directclientvendors.com/news24/api/get.php?type=news"; HttpGet request = new HttpGet(url); Htt

我试图向一个网站发送一个http请求,该网站应该返回json响应。问题是我没有得到json数据。但是当我在浏览器中粘贴url时,它会显示json输出。我是个新手。请帮忙

这是我的密码

HttpClient client = new DefaultHttpClient();
String url="http://directclientvendors.com/news24/api/get.php?type=news";
HttpGet request = new HttpGet(url);
HttpResponse response;
response = client.execute(request);
BufferedReader br = 
    new BufferedReader(new InputStreamReader(response.getEntity().getContent()));

String line = "";

while(br.ready())
{
    line+=br.readLine();
}
System.out.println("line "+line);

您应该执行
GET
请求,而不是
POST
。请将请求类型更改为
HttpGet
。当您将其粘贴到地址栏上并按enter键时,浏览器将在上执行
GET

另外,使用Reader+StringBuilder/JsonReader/GSON读取URL的响应内容。字符串连接会导致不必要地创建其他对象

[编辑]

令我惊讶的是,API调用即使在进行
POST
调用以获取资源时仍然有效。问题一定出在您的解析逻辑中。使用
JsonReader
对我来说很好。这只是模板代码,但您可以填充其余部分以获得其他JSON元素。无论
POST
是否有效,您仍应使用
GET
进行此调用

        HttpClient client = new DefaultHttpClient();
        HttpGet request = new HttpGet("http://directclientvendors.com/news24/api/get.php?type=news");
        HttpResponse response = client.execute(request);
        InputStream content = response.getEntity().getContent();
        JsonReader jsonReader = new JsonReader(new InputStreamReader(content, "UTF-8"));
        jsonReader.beginObject();
        if(jsonReader.hasNext())
        {
            System.out.println(jsonReader.nextName()); // prints 'news'
            // BEGIN_ARRAY etc to parse the rest
        }
        // END_OBJECT and cleanup

您应该执行
GET
请求,而不是
POST
。请将请求类型更改为
HttpGet
。当您将其粘贴到地址栏上并按enter键时,浏览器将在上执行
GET

另外,使用Reader+StringBuilder/JsonReader/GSON读取URL的响应内容。字符串连接会导致不必要地创建其他对象

[编辑]

令我惊讶的是,API调用即使在进行
POST
调用以获取资源时仍然有效。问题一定出在您的解析逻辑中。使用
JsonReader
对我来说很好。这只是模板代码,但您可以填充其余部分以获得其他JSON元素。无论
POST
是否有效,您仍应使用
GET
进行此调用

        HttpClient client = new DefaultHttpClient();
        HttpGet request = new HttpGet("http://directclientvendors.com/news24/api/get.php?type=news");
        HttpResponse response = client.execute(request);
        InputStream content = response.getEntity().getContent();
        JsonReader jsonReader = new JsonReader(new InputStreamReader(content, "UTF-8"));
        jsonReader.beginObject();
        if(jsonReader.hasNext())
        {
            System.out.println(jsonReader.nextName()); // prints 'news'
            // BEGIN_ARRAY etc to parse the rest
        }
        // END_OBJECT and cleanup

输出是什么?输出:行。它甚至不进入while循环。它的输出是什么?输出:行。它甚至没有进入while循环。