Articles of httpclient

如何使用gzip在Android Rails中压缩JSON?

我正在运行Rails 3.2.7与Ruby 1.9.3p194从SQLite数据库输出JSON数据。 render :json => result.to_json Android应用程序使用通过HTTP-GET加载的JSON文件: HttpClient httpclient = new DefaultHttpClient(); HttpGet httpGet = new HttpGet(urlPath); HttpResponse response = httpclient.execute(httpGet); HttpEntity entity = response.getEntity(); String result = EntityUtils.toString(entity, HTTP.UTF_8); JSONObject jsonObject = new JSONObject(result); 平台支持: 我读过Rails提供的gzip支持 ,如下所示: ActiveSupport::Gzip.compress(result) 我也从HTTP / 1.1,RFC2626,第14.3节猜测我可以configuration一个HTTP请求头: httpPost.setHeader("Accept-Encoding", "gzip"); 我还发现第3.5节“内容代码”中包含的信息非常有趣: 所有的内容编码值都是不区分大小写的 。 HTTP / 1.1使用Accept-Encoding (14.3节)和Content-Encoding (14.11节)标题字段中的内容编码值。 互联网号码分配机构(IANA)充当内容编码价值代币的注册机构。 最初,registry包含以下标记: […]

Android HttpClient和Cookies

我在Android中的HttpClient有一个问题:通过使用下面的代码,我想通过webviewlogin使用之前已经设置的cookie。 所以login数据应该在那里,确实在那里,我testing了它。 但是,当我在httppost或httpget中使用cookie时,它不使用login数据。 但这些cookies实际上应该足以接收那个需要login的页面,不是吗? 我不确定是否需要以特殊的方式将cookie发送到服务器或者是否足以将其加载到httpcontext中。 这里是代码: DefaultHttpClient httpclient = new DefaultHttpClient(); CookieStore lCS = new BasicCookieStore(); if (CookieManager.getInstance().getCookie(pUrl) != null) { String cookieString = CookieManager.getInstance().getCookie(pUrl); String[] urlCookieArray = cookieString.split(";"); for (int i = 0; i < urlCookieArray.length; i++) { System.out.println(urlCookieArray[i]); String[] singleCookie = urlCookieArray[i].split("="); Cookie urlCookie = new BasicClientCookie(singleCookie[0], singleCookie[1]); lCS.addCookie(urlCookie); } } HttpContext localContext […]

无法从IP服务器检索JSONArray,但我可以从普通服务器?

即时将一个服务从一个正常的域名服务器迁移到一个只有IP的服务器,这为我的应用程序提供了一个json服务,问题是我不能检索新的URL下面的代码的JSONArray: protected JSONArray doInBackground(String… arg0) { String reponse; try{ HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost(url); HttpResponse responce = httpclient.execute(httppost); HttpEntity httpEntity = responce.getEntity(); reponse = EntityUtils.toString(httpEntity); return new JSONArray(reponse); //With the oldURL I printed the JSON as a string and everithing OK but the new URL returns a null string of […]

如何在android上实现一个HTTP服务器

我在WIFI提供的同一个局域网上有两个android应用程序: 应用程序(A)在端口8033上打开侦听套接字 应用程序(B)使用HttpClient访问端口8033(A) (A)可以在(B)上做POST和GET请求? (A)访问(B)的URL是什么样的? 谢谢大家。

Android httpclient – 获取具有抢先authentication的文件

使用此示例代码获取网站的HTML代码时遇到问题。 http://svn.apache.org/repos/asf/httpcomponents/httpclient/branches/4.0.x/httpclient/src/examples/org/apache/http/examples/client/ClientPreemptiveBasicAuthentication.java 我必须使用上面的,因为我需要抢先authentication我的Android应用程序。 我认为解决scheme可能是httpget对象,但我仍然只得到错误:(比如HttpGet httpget = new HttpGet(“/ index.html”); 有没有人知道如何使用链接的示例代码获取上面的httpget对象中指定的文件内容。 它绝对是所谓的,但现在我只能得到状态码等等… 谢谢4帮助

如何在Java中使用HttpGet发送cookie

我试图发送一个cookie与我的HttpGet请求,但每次我尝试我还没有能够成功发送它。 我也试图直接修改标题,这里是我的代码: DefaultHttpClient httpClient = new DefaultHttpClient(); CookieStore store = new BasicCookieStore(); store.addCookie(MyCookieStorageClass.getCookie()); httpClient.setCookieStore(store); HttpGet httpGet = new HttpGet("http://localhost/); try { // Execute HTTP Get Request HttpResponse response = httpclient.execute(httpGet); String responseData = ResponseHandler.getResponseBody(response); } catch (IOException e) { e.printStackTrace(); }

HttpGet会自动处理cookie吗?

我想在使用HttpGet连接到服务器时保留一个会话,我需要了解它如何处理cookie。 服务器开发人员说他自己处理所有的cookies。 我使用HttpGet请求来访问服务器,如下所示:InputStream isResponse = null; HttpGet httpget = new HttpGet(strUrl); HttpResponse response = mClient.execute(httpget); HttpEntity entity = response.getEntity(); isResponse = entity.getContent(); responseBody = convertStreamToString(isResponse); return responseBody; 我应该再做点什么吗? 他是否会自动将cookie放在我的设备上,并且HttpGet方法知道使用它来保持使用cookie的sessionID? 如何检查cookie是否存在于我的设备上,以便知道会话是否“活着”? 如果我使用下面的代码来获取cookie: CookieStore cookieStore = new BasicCookieStore(); // Create local HTTP context HttpContext localContext = new BasicHttpContext(); // Bind custom cookie store to the local context […]

如何在Volley Library中获得Inpustream作为响应?

我在应用程序中使用Volley库。 在响应监听器,我需要InputStream作为响应 我如何得到它?

连接池关机android

我有一个Httpclient类。 在整个应用程序中使用相同的实例。 所以如果客户端== null,它应该创build一个其他的将返回现有的实例。 一切工作,直到我试图释放资源退出时通过做︰client.getConnectionManager()。shutdown(); ….在此之后,我无法再次login。 它给sysem错误说:连接池closures。 下面是这堂课: public class HttpClientFactory { private static DefaultHttpClient client; public synchronized static DefaultHttpClient getThreadSafeClient() { if (client != null) return client; client = new DefaultHttpClient(); SchemeRegistry schemeRegistry = new SchemeRegistry(); schemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80)); schemeRegistry.register(new Scheme("https", SSLSocketFactory.getSocketFactory(), 443)); HttpParams params = new BasicHttpParams(); SingleClientConnManager mgr = new SingleClientConnManager(params, […]

如何保持HttpClient连接保持活动?

我正在使用HttpClient POST方法。 我需要创build一次HttpClient ,并应使用Keep Alive Connection。 但我认为,就我而言,它每次都build立一个新的连接。 所以,我需要为HttpClient使用Keep Alive连接。 这是我的代码片段任何帮助将不胜感激很多。 ClientConnectionManager mgr = httpclient_recv.getConnectionManager(); hp = httpclient_recv.getParams(); httpclient_recv = new DefaultHttpClient( new ThreadSafeClientConnManager(hp,mgr.getSchemeRegistry()), hp); while (true) { try { java.util.logging.Logger.getLogger("org.apache.http.wire") .setLevel(java.util.logging.Level.FINER); java.util.logging.Logger.getLogger("org.apache.http.headers") .setLevel(java.util.logging.Level.FINER); System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.SimpleLog"); System.setProperty( "org.apache.commons.logging.simplelog.showdatetime", "true"); System.setProperty( "org.apache.commons.logging.simplelog.log.httpclient.wire", "debug"); System.setProperty( "org.apache.commons.logging.simplelog.log.org.apache.http", "debug"); System.setProperty( "org.apache.commons.logging.simplelog.log.org.apache.http.headers", "debug"); ByteArrayEntity bae = new ByteArrayEntity(byteData); bae.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "binary/octet-stream")); […]