Tag: urlconnection

如何在URLConnection中发送cookie?

在URLConnection上发送“完整”cookie的正确方法是什么? 我一直在用: URL url = new URL(page); URLConnection urlConn = url.openConnection(); urlConn.setRequestProperty(“Cookie”, myCookie); urlConn.setUseCaches(true); urlConn.connect(); myCookie值为testCookie = d1lEZk9rSHd3WnpBd2JkWGRhN1RYdz09OkEwQ21pSFJVZzBpVDhhUENaK3ZPV2c9PQ 有没有办法发送Path,Domain和Expires? 你需要以某种方式对值进行编码吗?

connection.setRequestProperty和明确写入urloutputstream是一样的吗?

URL url = new URL(“http://www.example.com/comment”); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDoOutput(true); connection.setRequestMethod(“POST”); 是 connection.setRequestProperty(key, value); 同样的 OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream()); writer.write(“key=” + value); writer.close(); ? 如果没有,请纠正我。

在java中,如何基于url创建HttpsURLConnection或HttpURLConnection?

我正在开发一个项目,我正在创建一个类来运行http客户端请求(我的类充当客户端)。 它接受一个url和一个请求方法(GET,POST,PUT等),我希望能够解析URL并根据它是https还是http打开一个HttpsURLConnection或HttpURLConnection(假设给定的URL始终是正确)。 如果我执行以下操作: URLConnection conn = url.openConnection(); 然后,这将自动创建一个可以同时接受http和https的URLConnection,但如果我这样做,那么我找不到任何方法来设置请求方法(GET,POST等),因为只有HttpsURLConnection或HttpURLConnection类具有setRequestMethod方法。 如果我执行以下操作: if(is_https) HttpsURLConnection conn = (HttpsURLConnection) url.openConnection(); else HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 然后创建连接,但我无法在if块之外访问它们。 是否可以这样做,或者我应该放弃并使用apache httpclient类?

URLConnection setRequestProperty vs addRequestProperty

让我说我正在谈论HTTP到Web服务器,我会接受HTML或文本,但更喜欢HTML。 换句话说,标题应该说(我想!) 接受:text / html,text / * 我正在使用Java,所以我有一个URLConnection。 我应该使用: myUrlConnction.setRequestProperty(“Accept”, “text/html”); myUrlConnction.addRequestProperty(“Accept”, “text/*”); 要么 myUrlConnction.setRequestProperty(“Accept”, “text/html, text/*”); 或者他们是等同的??? 一般来说,我看到的大多数第三方代码似乎并不担心这些标题的排序或多个值,所以我想知道它是如何最终起作用的。

如何使用URLConnection上传WAV文件

Curretly,我可以在终端(MAC)中使用此命令上传.wav文件: curl -H ‘X-Arg: AccessKey=3f55abc5-2830-027ce-e328-4e74df5a3f8f’ –data-binary @audio.wav -H ‘Content-Type: audio/wav’ http://generic-15327.2-3-11.com/bbb.aaa.eval/abc 我想从Android做同样的事情。 到目前为止,我已经实现了一个带有URLConnection的AsyncTask,我发送标题和除wave文件之外的所有内容。 得到一个json响应,告诉没有文件被上传,显然,但到目前为止,我知道我正确实现了标头和连接。 现在,我想上传.wav文件来包装所有内容,但我在这里有点迷失。 如何使用URLConnection上传Android中的.wav文件? 下面是我的代码,它是在AsyncTask里面,我不会把它放在一边简短: URL obj = new URL(BASE_URL); HttpURLConnection conn = (HttpURLConnection) obj.openConnection(); conn.setRequestProperty(“X-Arg”, “AccessKey=3fcb4985-2830-07ce-e998-4e74df5a3f8f”); conn.setRequestProperty(“Content-Type”, “audio/wav”); conn.setRequestMethod(“POST”); conn.setDoInput(true); conn.setDoOutput(true); String wavpath=Environment.getExternalStorageDirectory().getAbsolutePath()+”/audio.wav”; File wavfile = new File(wavpath); boolean success = true; if (wavfile.exists()) { app.loge(“**** audio.wav DETECTED”); } else{ app.loge(“**** audio.wav […]

Java HTTPUrlConnection超时不起作用

我编写了一个程序,通过随机代理打开httpurlconnection到网站。 我的httpurlconnection叫做conn 。 现在我知道,其中一些代理可能太慢了,所以我用conn.setConnectTimeout(40000)和conn.setReadTimeout(40000)将连接超时设置为40000毫秒。 这样做后,我得到了这段代码: long diff = 0; long starttime = 0; long endtime = 0; try { starttime = System.currentTimeMillis(); conn.connect(); endtime = System.currentTimeMillis(); diff = endtime – starttime; if (endtime <= starttime + conn.getConnectTimeout()) { //Trying to read sourecode InputStreamReader isrConn = new InputStreamReader(conn.getInputStream()); BufferedReader brConn = new BufferedReader(isrConn); line = brConn.readLine(); […]

无法使用Java的URLConnection获取响应头位置

有人可以在这里建议我做错了吗? 我正在尝试使用Java获取某个URL的标头位置,这是我的代码: URLConnection conn = url.openConnection(); String location = conn.getHeaderField(“Location”); 这很奇怪,因为我确实知道我正在引用的URL返回Location头并使用getContentType()或getContentLength()之类的方法完美地工作 你的建议一如既往地受到赞赏:) 谢谢

获取对Java的默认http(s)URLStreamHandler的引用

我有一个我需要在我的一个项目中使用的库,不幸的是它注册了自己的URLStreamHandler来处理http- URLs 。 有没有办法获得对Java的默认http-和https- URLStreamHandlers的引用,所以我可以在URL的构造函数中指定其中一个来打开标准的http连接而不使用库覆盖的协议?

在Java中读取网页IOException早期EOF

我经常在阅读网页时遇到“早熟EOF”exception。 以下是StackTrace java.io.IOException: Premature EOF at sun.net.www.http.ChunkedInputStream.readAheadBlocking(ChunkedInputStream.java:556) at sun.net.www.http.ChunkedInputStream.readAhead(ChunkedInputStream.java:600) at sun.net.www.http.ChunkedInputStream.read(ChunkedInputStream.java:687) at java.io.FilterInputStream.read(FilterInputStream.java:133) at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:2968) at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283) at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325) at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177) at java.io.InputStreamReader.read(InputStreamReader.java:184) at java.io.BufferedReader.fill(BufferedReader.java:154) at java.io.BufferedReader.readLine(BufferedReader.java:317) at java.io.BufferedReader.readLine(BufferedReader.java:382) at Utilities.getPage(Utilities.java:24) while ((line = rd.readLine()) != null) { at TalkPage.(TalkPage.java:15) at Updater.run(Updater.java:65) 以下是getPage()方法 public static String getPage(String urlString) throws Exception { URL url = new […]

URLConnection没有得到字符集

我正在使用URL.openConnection()从服务器下载内容。 服务器说 Content-Type: text/plain; charset=utf-8 但是connection.getContentEncoding()返回null 。 怎么了?