Tag: httpurlconnection

Java中的持久HttpURLConnection

我想写一个Java程序,将自动下载并命名我最喜欢的networking漫画。 由于我将要求从同一个域的多个对象,我想有一个持续的http连接,我可以保持开放,直到所有的漫画已经下载。 以下是我正在进行的工作。 如何在不打开新的http连接的情况下,从同一个域但不同path发出另一个请求? import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; public class ComicDownloader { public static void main(String[] args) { URL url = null; HttpURLConnection httpc = null; BufferedReader input = null; try { url = new URL("http://www.cad-comic.com/cad/archive/2002"); httpc = (HttpURLConnection) url.openConnection(); input = new BufferedReader(new InputStreamReader(httpc.getInputStream())); String inputLine; while ((inputLine […]

为什么你必须调用URLConnection#getInputStream才能写出URLConnection#getOutputStream?

我试图写出URLConnection#getOutputStream ,但是,没有数据实际上发送,直到我调用URLConnection#getInputStream 。 即使我将URLConnnection#doInput设置为false,它仍然不会发送。 有谁知道这是为什么? API文档中没有描述这一点。 有关URLConnection的Java API文档: http : //download.oracle.com/javase/6/docs/api/java/net/URLConnection.html 阅读和写入URLConnection的Java教程: http : //download.oracle.com/javase/tutorial/networking/urls/readingWriting.html import java.io.IOException; import java.io.OutputStreamWriter; import java.net.URL; import java.net.URLConnection; public class UrlConnectionTest { private static final String TEST_URL = "http://localhost:3000/test/hitme"; public static void main(String[] args) throws IOException { URLConnection urlCon = null; URL url = null; OutputStreamWriter osw = null; try […]

如何使用cookieManager在httpUrlConnection中处理cookie

我有一个服务器请求返回多个cookie,如下所示: 这就是我将这些cookie存储到cookieManager的方式: HttpURLConnection connection = … ; static java.net.CookieManager msCookieManager = new java.net.CookieManager(); msCookieManager.put(COOKIES_URI, connection.getHeaderFields()); 这就是我将这些cookie添加到下一个连接的方式: connection.setRequestProperty("Cookie", msCookieManager.getCookieStore().get(COOKIES_URI).toString()); 是从cookieManager获取cookie的正确方法吗?我确信有更好的一个…

从Android发送JSON HTTP POST请求

我正在使用下面的代码发送一个HTTP POST请求发送一个对象到WCF服务。 这工作正常,但如果我的WCF服务还需要其他参数会发生什么? 我怎样才能从我的Android客户端发送它们? 这是我迄今写的代码: StringBuilder sb = new StringBuilder(); String http = "http://android.schoolportal.gr/Service.svc/SaveValues"; HttpURLConnection urlConnection=null; try { URL url = new URL(http); urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setDoOutput(true); urlConnection.setRequestMethod("POST"); urlConnection.setUseCaches(false); urlConnection.setConnectTimeout(10000); urlConnection.setReadTimeout(10000); urlConnection.setRequestProperty("Content-Type","application/json"); urlConnection.setRequestProperty("Host", "android.schoolportal.gr"); urlConnection.connect(); //Create JSONObject here JSONObject jsonParam = new JSONObject(); jsonParam.put("ID", "25"); jsonParam.put("description", "Real"); jsonParam.put("enable", "true"); OutputStreamWriter out = new OutputStreamWriter(urlConnection.getOutputStream()); […]

如何在HttpURLConnection中发送PUT,DELETE HTTP请求?

我想知道是否有可能通过java.net.HttpURLConnection发送PUT,DELETE请求(实际上)到基于HTTP的URL。 我已经阅读了很多文章描述如何发送GET,POST,TRACE,OPTIONS请求,但是我仍然没有find任何成功执行PUT和DELETE请求的示例代码。

如何在Java中进行HTTP GET?

如何在Java中进行HTTP GET?

Android下载二进制文件的问题

我在从互联网下载我的应用程序中的二进制文件(video)时遇到问题。 在Quicktime中,如果我直接下载,它可以正常工作,但是通过我的应用程序,它会被搞乱(即使它们在文本编辑器中看起来完全一样)。 这里是一个例子: URL u = new URL("../../../a.html"); HttpURLConnection c = (HttpURLConnection) u.openConnection(); c.setRequestMethod("GET"); c.setDoOutput(true); c.connect(); FileOutputStream f = new FileOutputStream(new File(root,"Video.mp4")); InputStream in = c.getInputStream(); byte[] buffer = new byte[1024]; int len1 = 0; while ( (len1 = in.read(buffer)) > 0 ) { f.write(buffer); } f.close();

URLConnection不遵循redirect

我不明白为什么Java的HttpURLConnection不遵循redirect。 我使用下面的代码来获取此页面 : import java.net.URL; import java.net.HttpURLConnection; import java.io.InputStream; public class Tester { public static void main(String argv[]) throws Exception{ InputStream is = null; try { String bitlyUrl = "http://bit.ly/4hW294"; URL resourceUrl = new URL(bitlyUrl); HttpURLConnection conn = (HttpURLConnection)resourceUrl.openConnection(); conn.setConnectTimeout(15000); conn.setReadTimeout(15000); conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.0.11) Gecko/2009060215 Firefox/3.0.11 (.NET CLR 3.5.30729)"); […]

连接到需要使用Java进行身份validation的远程URL

如何连接到需要validation的Java中的远程URL。 我试图find一种方法来修改下面的代码,以编程方式提供用户名/密码,所以它不会扔401。 URL url = new URL(String.format("http://%s/manager/list", _host + ":8080")); HttpURLConnection connection = (HttpURLConnection)url.openConnection();

使用POST和HttpURLConnection发送文件

由于Android开发人员推荐使用HttpURLConnection类,所以我想知道是否有人可以提供一个关于如何通过POST将位图“文件”(实际上是内存stream)发送到Apache HTTP服务器的示例。 我不喜欢cookies或authentication或任何复杂的,但我只是想有一个可靠的逻辑实现。 我在这里看到的所有例子看起来更像是“让我们试试这个,也许它是有效的”。 现在,我有这个代码: URL url; HttpURLConnection urlConnection = null; try { url = new URL("http://example.com/server.cgi"); urlConnection = (HttpURLConnection) url.openConnection(); } catch (Exception e) { this.showDialog(getApplicationContext(), e.getMessage()); } finally { if (urlConnection != null) { urlConnection.disconnect(); } } showDialog应该只显示一个AlertDialog (如果URL无效?)。 现在,假设我生成了一个位图,如下所示: Bitmap image = this.getBitmap()在从View派生的控件中,我想通过POST发送它。 什么是适当的程序来实现这样的事情? 我需要使用哪些课程? 我可以在这个例子中使用HttpPost吗? 如果是这样,我将如何构build我的位图的InputStreamEntity ? 我会发现它需要首先将位图存储在设备上的文件中。 我还应该提到,我真的需要将原始位图的每一个不变的像素发送到服务器,所以我不能将其转换为JPEG。