Tag: http

如何通过代理进行所有网络流量?

我有一个应用程序向远程服务器发出http请求。 我使用以下代码执行此操作: HttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(“myURL”); try { ArrayList postVariables = new ArrayList(2); postVariables.add(new BasicNameValuePair(“key”,”value”)); httpPost.setEntity(new UrlEncodedFormEntity(postVariables)); HttpResponse response = httpClient.execute(httpPost); String responseString = EntityUtils.toString(response.getEntity()); if (responseString.contains(“\”success\”:true”)){ //this means the request succeeded } else { //failed } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); […]

如何为Android开发代理服务器(TCP)?

我正在尝试在Android中为YouTubeApp开发代理服务器(TCP)。 我将使用ProxyDroid(电话已植根),以便请求/响应通过我的代理服务器。 作为Android,我使用的是Java。 但是有几个挑战: 必须解析来自YouTubeApp的请求。 是否存在用于解析HTTP请求的现有库(在Java中并且可以与Android一起使用)? 有人甚至可以为此目的建议一些代码片段吗? 或者,我是否必须自己进行解析? 请求远程站点时; 例如www.google.com,我是否必须使用URL和openConnection()? 或者,也可以使用套接字? 我试图找到一种方法,以便我可以使用套接字并从任何网站获得响应? 希望很快能听到你们的意见。

JavamultithreadingWeb服务器 – 未收到多个GET请求

我有一个非常基本的multithreadingWeb服务器的启动,它可以接收所有GET请求,只要它们一次来一个。 但是,当多个GET请求同时进入时,有时它们都会被收到,有时则会丢失一些。 我通过创建一个html页面测试了这一点,该页面包含指向我的web服务器并在firefox中打开页面的多个图像标记。 我总是使用shift + refresh。 这是我的代码,我必须做一些根本错误的事情。 public final class WebServer { public static void main(String argv[]) throws Exception { int port = 6789; ServerSocket serverSocket = null; try { serverSocket = new ServerSocket(port); } catch(IOException e) { System.err.println(“Could not listen on port: ” + port); System.exit(1); } while(true) { try { Socket clientSocket = […]

如何使用范围标题汇编文件?

我使用范围黑客,但不创建正确的文件。 如果我发送Range bytes=0-8999文件重9000字节并正确工作。 如果我发送Range bytes=0-8999,9000-9999文件重Range bytes=0-8999,9000-9999字节并且不正确工作。 文件类型mp3。 可能有什么不对? HttpGet first = new HttpGet(“http://cs4832.vkontakte.ru/u50184979/audio/ef64581d913c.mp3”); first.addHeader(“Accept-Ranges”, “bytes”); first.addHeader(“Range”, “bytes=0-8999,9000-9999”); //first.addHeader(“Accept-Ranges”, “bytes”); HttpResponse response = httpclient.execute(first, localContext); InputStream instream = response.getEntity().getContent(); File f = new File(“outFile1.mp3”); OutputStream out = new FileOutputStream(f); byte buf[] = new byte[1024]; int len; while ((len = instream.read(buf)) > 0) { out.write(buf, 0, len); […]

将证书添加到Java信任库和Sslhandshake

我将带有Java程序的http请求(使用HttpUrlConnection)发送到网站并从那里下载文件。 该网站是“https”并使用证书。 当我尝试运行我的代码时,它会例外: cause javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 我尝试使用我的浏览器(Mozilla)访问此网站。当我检查证书时,有三个证书。该站点包含这些证书。 DigiCert高保证EV根CA. -DigiCert High Assurance CA-3 -companycert(由DigiCert High Assurance CA-3发布) 我用keytool检查我的trustsroe。 信任库仅具有根CA. 是否足够或我必须导入另外2个证书? 或者只是 – 公司? 将中间证书添加到java信任库有什么风险? 我必须这样做吗? 任何人都可以帮忙吗?

使用http协议,java和javascript下载大文件> 1GB

我有一个用于下载文件的Web应用程序。 一切正常,除非我想下载超过1GB的文件。 这是我的java代码: InputStream in = new FileInputStream(new File(folderFile.getAbsolutePath())); org.apache.commons.io.IOUtils.copy(in, response.getOutputStream()); response.flushBuffer(); in.close(); HTTP请求: $http({ method:’get’, url:this.apiDownloadFileUrl, responseType:’arraybuffer’, cache: false }); 客户端:我在客户端上成功获取数据,但是当我将其设为Blob时,如果数据大小超过500MB,则没有任何反应,也没有下载 。 另外,我可以下载300MB …… 如何检查是内存问题还是服务器问题? …当我从gmail下载时,我可以下载超过1GB。 .success(function(databack) { var file = new Blob([ databack ], { type : ‘application/csv’ }); var fileURL = window.URL.createObjectURL(file); var a = document.createElement(‘a’); a.href = fileURL; a.target = ‘_blank’; […]

无法连接Microsoft Azure Vm中的端口

我在Microsoft Azure中创建了Red Hat VM,并且能够通过ssh进行连接。 我已经在VM中使用端口8081启动了Java服务器并且它已成功启动。 但是我无法在浏览器中查看它。 它没有加载。 我尝试过以下内容,但所有内容都没有加载: – host:80 host:8080 host:8081 我已在网络安全组和相关子网中添加了入站安全规则。 我仍然无法在浏览器中查看我的服务器。 我已遵循此文档的入站安全规则 这是我的入境规则 netstat -tuplen (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State User […]

请求Content-Type为gzip时,Jetty会响应400 Bad Request

在Jetty 9.3.0.v20150612上运行的Spring MVC Java 1.8.0_45-b14后端适用于未压缩的请求,但无法接受压缩的请求。 我在这里遵循了Gzip Handler配置说明,确保它们也支持POST请求。 虽然它没有说这种配置完全适用于请求……但它可能仅用于响应。 etc / jetty-gzip.xml – GET POST /* 在web.xml中 – GzipFilter org.eclipse.jetty.servlets.GzipFilter mimeTypes text/html,text/plain,text/xml,application/xhtml+xml,text/css,application/javascript,image/svg+xml,application/json minGzipSize 500 GzipFilter /* Android客户端会发生这种情况,并且还会使用HTTP客户端应用程序(Paw)进行重现,这是一个请求示例 – POST /report?v=1 HTTP/1.1 Content-Encoding: gzip Content-Type: application/json Host: 10.0.0.1:8080 Connection: close User-Agent: Paw/2.2.2 (Macintosh; OS X/10.10.4) GCDHTTPRequest Content-Length: 5845 xí\MÇuÝûWÔE(É`_¦(<EtD&)%:¦OTè.EôÔU53¬¼ð"ÇYfÆ'®ì/áÿʽ¯ª r(ʲä#èúz÷Ý÷^5èýR;Úå;ÕÎÿöºÊuW«ß«v«ß¿ø³:VÕ)Õ .. BINARY … 回应 – HTTP/1.1 400 […]

HTTP / 1.1 302暂时移动 – 在Android API 16-17上发生

长话短说。 我的应用程序启动时,我想从互联网上下载一些谷歌表文件。 这是情况: 较新的设备:一切工作100%,没有问题,所有文件下载。 旧设备(API 16-17):正确下载第一个工作表文件。 无法下载第二个文件。 我收到HTTP / 1.1 302 Moved Temporarily问题,文件无法正确下载。 我为这两个文件调用了AsynchTask。 AsynchTask运行完美,我尝试了其他方法来查看AsynchTask是否存在问题。 此外,所有链接都非常精细且有效。 这是我的AsynchTask类代码的一部分: 下载文件的方法: private String downloadUrl(String urlString) throws IOException { InputStream is = null; try { URL url = new URL(urlString); HttpsURLConnection conn = (HttpsURLConnection) url.openConnection(); conn.setInstanceFollowRedirects(true); //you still need to handle redirect manully. HttpsURLConnection.setFollowRedirects(true); conn.setReadTimeout(10000 /* milliseconds */); conn.setConnectTimeout(15000 […]

HTTP Node.js Java API

我正在创建一个Node.js Java后端。 Node.js中间件从Android应用程序接收HTTP请求,然后将其中继到Java代码。 选择此技术的原因是从头开始创建高度可扩展的后端。 我希望Node.js api接收HTTP请求,将其传递给后端的Java端,Java代码进行计算,将结果发送回Node.js API,然后通过发送结果完成该过程回到Android应用程序。 我可以接收和解析HTTP请求: var BodyParser = require(‘body-parser’); var Express = require(‘express’); var JavaClient = require(‘./NodeJavaBridge.js’); var JavaClientInstance = new JavaClient(); var app = Express(); ///// Receive message logic \\\\\ app.use(BodyParser.json()); app.post(‘/’, function (request, response) { var task = request.body; response.writeHead(200, { ‘content-type’: ‘text/plain’ }); var otherObject = { SomeData: 1234 […]