标签: urlconnection

在URLConnection中设置标头的正确方法是什么?

我的代码如下:

URLConnection cnx = address.openConnection();
cnx.setAllowUserInteraction(false);         
cnx.setDoOutput(true);
cnx.addRequestProperty("User-Agent", 
    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");
InputStream is = cnx.getInputStream();
Run Code Online (Sandbox Code Playgroud)

如果我在收到之前设置标题是否可以InputStream?我的标题会被发送,还是服务器会看到默认URLConnection的用户代理(如果有的话)?

java header urlconnection

19
推荐指数
1
解决办法
4万
查看次数

URLConnection没有得到charset

我正在使用URL.openConnection()从服务器下载的东西.服务器说

Content-Type: text/plain; charset=utf-8
Run Code Online (Sandbox Code Playgroud)

connection.getContentEncoding()回报null.怎么了?

java content-type http urlconnection httpurlconnection

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

URLConnection.setUseCaches()在实践中如何运作?

我有一个Applet,它使用URLConnection通过http连接加载图像.我为所有连接设置setUseCaches(true),但仍然没有看到任何缓存行为.我的图像的HTTP标头具有合理的缓存设置.如果你看一下bug 4528599,就会有这个相当神秘的陈述:

Java Plug-In的当前版本(1.3.1)仅检查浏览器缓存中名称以.jar或.class结尾的文件.有人告诉我,对于Java Plug-In 1.4,将检查浏览器缓存的以下文件类型:.class,.jar,.zip,.jpg,.gif,.wav,.au.

当然,这被标记为1.6的固定,但即使在1.6以下,我也看不到任何缓存.我的图像是PNG文件,在某些情况下,实际上并不以.png扩展名结尾.我没有看到任何缓存.

错误修复报告讨论了1.6统一下载引擎,但谷歌似乎并不了解它.

这是应该工作还是只是另一个破碎的太阳"功能".有什么方法或解决方法,我可以让我的applet从浏览器缓存加载PNG图像?我宁愿不实施自己的....

更新:缓存似乎与ResponseCache实现相关联.有关其工作原理的详细信息,请参阅此技术说明.最后一行说:

Java 2 Standard Edition中没有URLConnection缓存的默认实现.但是,Java Plugin和Java WebStart确实提供了一个开箱即用的功能.

所以在我看来问题确实变成了:Java插件ResponseCache实现如何真正起作用?v1.4/v1.5/v.16之间有什么区别

有人有任何想法吗?

java applet urlconnection

18
推荐指数
1
解决办法
2万
查看次数

URLConnection或HTTPClient:哪个提供更好的功能和更高的效率?

我希望为Android应用程序创建一个登录表单.我想使用post方法将信息发送到服务器端,由PHP文件处理它; 然后验证参数并发回响应.

我看一下使用HttpClient和URLConnection的实现,它们非常相似.哪个在Android应用程序中使用效率更高?

谢谢Fabii

android urlconnection httpclient

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

我可以全局设置HTTP连接的超时吗?

我有一个程序javax.xml.ws.Service用于调用由WSDL定义的远程服务.此程序在Google App Engine上运行,默认情况下,将HTTP连接超时设置为5秒{1}.我需要增加此超时值,因为此服务通常需要很长时间才能响应,但由于此请求未进行URLConnection,我无法弄清楚如何调用URLConnection.setReadTimeout(int){2}或以其他方式更改超时.

有没有办法在App Engine上全局设置HTTP连接超时?而且,为了分享知识,人们将如何解决这类问题呢?

{1}:https://developers.google.com/appengine/docs/java/urlfetch/overview#Requests

{2}:http://docs.oracle.com/javase/1.5.0/docs/api/java/net/URLConnection.html#setReadTimeout(int)

java google-app-engine wsdl urlconnection httpurlconnection

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

java.lang.ClassCastException:libcore.net.http.HttpURLConnectionImpl无法强制转换为javax.net.ssl.HttpsURLConnection

我正在编写一些代码,通过HTTPS将文件从设备上传到云端.

相关片段:

HttpsURLConnection conn = null; 
URL url = new URL(urlstring);
conn = (HttpsURLConnection) url.openConnection(); // exception here.
Run Code Online (Sandbox Code Playgroud)

但演员阵容不会编译:

06-20 15:58:05.311: E/FNF(30286): java.lang.ClassCastException: libcore.net.http.HttpURLConnectionImpl cannot be cast to javax.net.ssl.HttpsURLConnection
Run Code Online (Sandbox Code Playgroud)

我发现了类似的问题:使用java类HttpsURLConnection,但我没有从sun包导入任何东西.

我的进口:

import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.URL;
import android.net.Uri;
import javax.net.ssl.HttpsURLConnection;
import android.util.Log;
import edu.mit.media.funf.storage.RemoteFileArchive;
import edu.mit.media.funf.util.LogUtil;
Run Code Online (Sandbox Code Playgroud)

有一段时间我一直在讨论这个问题吗?

java https android http urlconnection

17
推荐指数
1
解决办法
2万
查看次数

Android的HttpURLConnection在HEAD请求上抛出EOFException

这个小代码片段可以在Mac的JVM上正常运行.不幸的是,它在Android 4.2上执行时崩溃了.

import java.net.HttpURLConnection;
import java.net.URL;

public class App
{
    public static void main( String... arguments ) throws Exception
    {
        HttpURLConnection connection = (HttpURLConnection) new URL( "https://github.com" ).openConnection();
        connection.setRequestMethod( "HEAD" );

        System.out.println( connection.getResponseCode() + "" );
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我更换https://github.comhttps://www.facebook.com它工作正常,但我无法找出原因.

该例外不包含消息; 所以这里至少是堆栈跟踪.

java.io.EOFException
        at java.util.zip.GZIPInputStream.readFully(GZIPInputStream.java:206)
        at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:98)
        at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:81)
        at libcore.net.http.HttpEngine.initContentStream(HttpEngine.java:541)
        at libcore.net.http.HttpEngine.readResponse(HttpEngine.java:844)
        at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:283)
        at libcore.net.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:495)
        at libcore.net.http.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:134)
Run Code Online (Sandbox Code Playgroud)

java android http urlconnection httpurlconnection

17
推荐指数
1
解决办法
6825
查看次数

实例化Java抽象类?

相对较新的Java程序员和我已经被教导过你不能创建一个抽象类的实例.我也做了一些研究,我了解到在大多数情况下,当它出现一个抽象类时,它实际上是一个匿名的子类.但这是我遇到的问题:

Java的URL类有一个openConnection返回的方法URLConnection.URLConnection是一个抽象类,Java文档也将其所有子类列为抽象类......所以我真的迷失了.什么回来了?

java urlconnection instantiation abstract

16
推荐指数
5
解决办法
1321
查看次数

java.io.IOException:服务器返回HTTP响应代码:500

我正在用Java解决这个问题.我想从URL获取一些HTML信息.这段代码工作了很长时间,但突然间,它停止了工作.

当我使用浏览器访问此URL时,它会打开没有问题.

代码:

URL site = new URL(this.url);
java.net.URLConnection yc = site.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream()));
String inputLine;
String objetivo = "<td height=\"28\" colspan=\"2\"";
while ((inputLine = in.readLine()) != null && !inputLine.contains(objetivo)) {
}
inputLine = in.readLine();
Run Code Online (Sandbox Code Playgroud)

例外情况:

java.io.IOException: Server returned HTTP response code: 500 for URL: http://www.myurl.com
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at Sites.websites.Site1.getData(Site1.java:53)
    at util.Util.lerArquivo(Util.java:278)
    at util.Util.main(Util.java:983)
Run Code Online (Sandbox Code Playgroud)

怎么了?主人挡住了我吗?

java http urlconnection

15
推荐指数
1
解决办法
18万
查看次数

理解URLConnection.setReadTimeout()

请考虑以下代码段:

URLConnection connection = target.openConnection();

connection.setConnectTimeout(5000); // 5 sec
connection.setReadTimeout(10000); // 10 sec
Run Code Online (Sandbox Code Playgroud)

是否connection.setReadTimeout设置了STARTING读取数据的最大可用时间,还是可用于完成读取数据的最大时间?

我的理解是,java有10秒钟的时间开始从连接中读取下一个数据字节.完成从连接读取所有数据没有超时,因为我们不知道可能有多大.这是对的吗?

java timeout urlconnection

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