Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java上最基本的HttpGet请求_Java_Json_Http - Fatal编程技术网

Java上最基本的HttpGet请求

Java上最基本的HttpGet请求,java,json,http,Java,Json,Http,我需要帮助对返回JSON对象的网站执行RESTful调用。我被可用的选项卡住了,但我更喜欢使用开箱即用的东西,而不是安装任何第三方插件 以下是我目前掌握的情况: import java.io.*; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.c

我需要帮助对返回JSON对象的网站执行RESTful调用。我被可用的选项卡住了,但我更喜欢使用开箱即用的东西,而不是安装任何第三方插件

以下是我目前掌握的情况:

import java.io.*;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;

HttpClient httpClient = new DefaultHttpClient();
HttpGet httpGetRequest = new HttpGet("http://search.twitter.com/search.json?q=%40apple");

HttpResponse httpResponse = httpClient.execute(httpGetRequest);
我知道本例中使用的URL返回以下内容:

{"errors":[{"message":"The Twitter REST API v1 is no longer active. Please migrate to API v1.1. https://dev.twitter.com/docs/api/1.1/overview.","code":64}]}
这对我来说很好,我只想至少把JSON响应转换成一个字符串,这样我就可以从这里开始了。我非常熟悉REST的工作原理,让它在Objective-C和Python上工作非常容易,但出于某种原因,Java有十几种实现可以让它正常工作,我只是在寻找最基本的方法,我不会做任何像将图像上传到服务器这样疯狂的事情

因此,我上面代码的问题是,我遇到了一个
ClientProtocolException
错误,
httpClient.execute()
需要一个try-catch语句,这对我来说是全新的,我从来没有因为没有插入try-catch语句而被编译器骂过

如何修复此问题以调用将非常基本的JSON对象转换为字符串的url?

此代码应该可以工作:

try {
        HttpResponse response;
        DefaultHttpClient httpClient = new DefaultHttpClient();
        HttpGet getConnection = new HttpGet(url);
        try {
            response = httpClient.execute(getConnection);
            String JSONString = EntityUtils.toString(response.getEntity(),
                    "UTF-8");
            JSONObject jsonObject = new JSONObject(JSONString); //Assuming it's a JSON Object

        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (JSONException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

首先看一看Java有很多JSON库,我相信这个库相对比较流行…使用简单的JSON解析器请解释一个非常基本的JSON对象如何不是一个
字符串
?嗯。。。twitter上的基本JSON在真正成为字符串之前需要先发送到客户端。为什么你不想使用库呢?这只是为了个人教育,还是为了解决一些问题?