标签: urlconnection

如何使用java.net.URLConnection来触发和处理HTTP请求

java.net.URLConnection在这里经常询问使用情况,Oracle教程对此非常简洁.

该教程基本上只显示了如何触发GET请求并读取响应.它没有解释如何使用它来执行POST请求,设置请求标头,读取响应标头,处理cookie,提交HTML表单,上传文件等.

那么,我如何使用java.net.URLConnection触发和处理"高级"HTTP请求?

java http urlconnection httprequest httpurlconnection

1903
推荐指数
11
解决办法
100万
查看次数

你能解释一下HttpURLConnection连接过程吗?

HTTPURLConnection用来连接到Web服务.我知道如何使用,HTTPURLConnection但我想了解它是如何工作的.基本上,我想知道以下内容:

  • 在哪一点上HTTPURLConnection尝试建立与给定URL的连接?
  • 在哪一点上我可以知道我能够成功建立连接?
  • 是建立连接并在一步/方法调用中发送实际请求?它是什么方法?
  • 你能解释的功能getOutputStreamgetInputStream外行的任期?我注意到,当我试图连接到服务器宕机,我得到ExceptiongetOutputStream.这是否意味着HTTPURLConnection我只会在调用时开始建立连接getOutputStream?怎么样getInputStream?因为我只能得到响应getInputStream,那么这是否意味着我还没有发送任何请求getOutputStream但只是建立连接?HttpURLConnection我调用时是否回到服务器请求响应getInputStream
  • 我是否正确地说,openConnection只是创建一个新的连接对象,但尚未建立任何连接?
  • 如何衡量读取开销和连接开销?

java inputstream outputstream urlconnection httpurlconnection

131
推荐指数
2
解决办法
11万
查看次数

无法解析主机"<在此处插入URL>"没有与主机名关联的地址

我尝试过本教程: 从Web获取数据

我尝试在平板电脑的最新平台Android 3.0上实现它,但是,我收到此错误:" 无法解析主机"www.anddev.org"没有与主机名关联的地址. "

您可以签出我用来证明该文件存在的URL. http://www.anddev.org/images/tut/basic/getdatafromtheweb/loadme.txt

我创建了一个私有类,并使用asynctask扩展它.这是代码:

    private class Downloader extends AsyncTask<String,Void,String>{
    String myString = null;
    @Override
    protected String doInBackground(String... arg0) {
        try{
            URL myURL = new URL("http://www.anddev.org/images/tut/basic/getdatafromtheweb/loadme.txt");
            URLConnection ucon = myURL.openConnection();
            InputStream is = ucon.getInputStream();
            BufferedInputStream bis = new BufferedInputStream(is);

            ByteArrayBuffer baf = new ByteArrayBuffer(50);
            int current = 0;
            while((current=bis.read())!=-1){
                baf.append((byte)current);
            }
            myString = new String (baf.toByteArray());
        }catch(Exception e){
            myString = e.getMessage();
        }
        return myString;
    }
@Override
protected void onPostExecute(String result){
    tv.setText(result);
}
}
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

android urlconnection android-asynctask android-3.0-honeycomb

97
推荐指数
7
解决办法
13万
查看次数

当URL启动时,为什么会出现"java.net.ConnectException:Connection timed out"异常?

ConnectException: Connection timed out从代码中获得了一些频率.我试图点击的网址已经启动.相同的代码适用于某些用户,但不适用于其他用户.似乎一旦一个用户开始获得此异常,他们就会继续获得异常.

这是堆栈跟踪:

java.net.ConnectException: Connection timed out
Caused by: java.net.ConnectException: Connection timed out
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
    at java.net.Socket.connect(Socket.java:516)
    at java.net.Socket.connect(Socket.java:466)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:157)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:365)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:477)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:214)
    at sun.net.www.http.HttpClient.New(HttpClient.java:287)
    at sun.net.www.http.HttpClient.New(HttpClient.java:299)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:796)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:748)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:673)
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:840)
Run Code Online (Sandbox Code Playgroud)

以下是我的代码中的代码段:

URLConnection urlConnection = null;
OutputStream outputStream = null;
OutputStreamWriter outputStreamWriter = null;
InputStream inputStream = null;

try {
    URL url = new URL(urlBase);
    urlConnection = url.openConnection();
    urlConnection.setDoOutput(true);

    outputStream = …
Run Code Online (Sandbox Code Playgroud)

java connection urlconnection connectexception

81
推荐指数
5
解决办法
41万
查看次数

URLConnection.setDoOutput()究竟是什么影响的?

setDoOutput()进来URLConnection.根据文件,我应该

如果您打算将URL连接用于输出,请将DoOutput标志设置为true,否则设置为false.

现在我正面临这个问题 - Java运行时将请求转换为POST一次setDoOutput(true)被调用,服务器只响应GET请求.我想了解如果setDoOutput(true)从代码中删除它会发生什么.

这到底会产生什么影响?假设我把它设置为false- 我现在能做什么,现在不能做什么?我可以执行GET请求吗?在这种方法的背景下什么是"输出"?

java android urlconnection

72
推荐指数
2
解决办法
7万
查看次数

将文件从Java客户端上载到HTTP服务器

我想将一些文件上传到HTTP服务器.基本上我需要的是一些带有一些参数和文件的服务器POST请求.我见过只上传文件的例子,但没有找到如何传递其他参数.

这样做最简单,最自由的解决办法是什么?有没有人有我可以学习的文件上传示例?我一直在谷歌上搜索几个小时,但(也许只是其中一天)我找不到我需要的东西.最好的解决方案是不涉及任何第三方类或库的东西.

java file-upload urlconnection

64
推荐指数
3
解决办法
16万
查看次数

方便的方法来解析Servlet中传入的multipart/form-data参数

是否有任何方便的方法来读取和解析来自传入请求的数据.

例如客户发起邮寄请求

URLConnection connection = new URL(url).openConnection();
connection.setDoOutput(true);
connection.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);
PrintWriter writer = null;
try {
    OutputStream output = connection.getOutputStream();
    writer = new PrintWriter(new OutputStreamWriter(output, charset), true); // true = autoFlush, important!
    // Send normal param.
    writer.println("--" + boundary);
    writer.println("Content-Disposition: form-data; name=\"param\"");
    writer.println("Content-Type: text/plain; charset=" + charset);
    writer.println();
    writer.println(param);
Run Code Online (Sandbox Code Playgroud)

我无法使用param request.getParameter("paramName").以下代码

BufferedReader reader = new BufferedReader(new InputStreamReader(
    request.getInputStream()));
  StringBuilder sb = new StringBuilder();
  for (String line; (line = reader.readLine()) != null;) {
   System.out.println(line);

  }
Run Code Online (Sandbox Code Playgroud)

但是为我显示内容

-----------------------------29772313742745 …
Run Code Online (Sandbox Code Playgroud)

java servlets urlconnection

63
推荐指数
3
解决办法
13万
查看次数

Apache http客户端或URLConnection

我需要在Android应用程序上下载一个网页,我很难决定是否使用android apache http客户端或java的URLConnection.

有什么想法吗?

java android urlconnection apache-commons-httpclient

53
推荐指数
3
解决办法
6万
查看次数

Java URLConnection超时

我试图从HTTP URL解析XML文件.如果XML提取时间超过此时间,我想配置15秒的超时,我想报告超时.出于某种原因,setConnectTimeout和setReadTimeout不起作用.这是代码:

          URL url = new URL("http://www.myurl.com/sample.xml");
          URLConnection urlConn = url.openConnection();
          urlConn.setConnectTimeout(15000);
          urlConn.setReadTimeout(15000);
          urlConn.setAllowUserInteraction(false);         
          urlConn.setDoOutput(true);

          InputStream inStream = urlConn.getInputStream();
          InputSource input = new InputSource(inStream);
Run Code Online (Sandbox Code Playgroud)

我正在捕捉SocketTimeoutException.

谢谢克里斯

java timeout urlconnection connect

52
推荐指数
4
解决办法
11万
查看次数

URLConnection,HttpURLConnection和HttpsURLConnection之间的区别

是什么区别URLConnection,HttpURLConnectionHttpsURLConnection(使用SSL).在什么条件下,我应该使用哪一个?

java urlconnection

37
推荐指数
2
解决办法
3万
查看次数