首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >REST HttpURLConnection

REST HttpURLConnection
EN

Stack Overflow用户
提问于 2013-08-13 08:45:06
回答 1查看 7.3K关注 0票数 4

我正在一个REST客户端上工作,使用HttpURLConnection对tinkerpop数据库进行实验。

我正在尝试发送一个'GET - CONNECT'。现在我明白了(从一些网络研究中),如果我使用doOutput(true),‘客户端’将会' POST‘,即使我setRequestMethod 'GET' as POST是默认的(好吧?)然而,当我注释掉doOutput(true)时,我得到了这个错误:

代码语言:javascript
复制
java.net.ProtocolException: cannot write to a URLConnection if doOutput=false - call setDoOutput(true)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:995)
at RestContent.handleGetConnect(RestContent.java:88)

at RestClient.main(RestClient.java:42)`

下面是我在setUseDoOutPut()中尝试过各种选项的通信代码片段。

代码语言:javascript
复制
//connection.setDoInput(true);
connection.setUseCaches (false);
connection.setDoOutput(true);
connection.setAllowUserInteraction(false);

// set GET method 
try {
    connection.setRequestMethod("GET");
} catch (ProtocolException e1) {
    e1.printStackTrace();
    connection.disconnect();
}

在另一种情况下,connection.setRequestMethod("GET")出现异常。有什么提示吗?

EN

回答 1

Stack Overflow用户

发布于 2013-09-26 17:40:33

以下代码运行良好: URL是一个支持GET操作的Rest URL。

代码语言:javascript
复制
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    connection.setRequestMethod("GET");
    //connection.setDoOutput(true);
    InputStream content = (InputStream) connection.getInputStream();
    BufferedReader in = new BufferedReader(new InputStreamReader(content));
    String line;
    while ((line = in.readLine()) != null) {
        System.out.println(line);
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18198953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档