Tag: http

Python:HTTP使用stream发布大文件

我将潜在的大file upload到Web服务器。 目前我正在这样做: import urllib2 f = open('somelargefile.zip','rb') request = urllib2.Request(url,f.read()) request.add_header("Content-Type", "application/zip") response = urllib2.urlopen(request) 但是,这会在发布之前将整个文件的内容读入内存。 我怎样才能将文件stream式传输到服务器?

使用Node.js调用JSON API

我想获取login到我的应用程序的用户的Facebook个人资料图片。 Facebook的API声明http://graph.facebook.com/517267866/?fields=picture将正确的URL作为JSON对象返回。 我想从我的代码中获取图片的url。 我尝试了以下,但我在这里失去了一些东西。 var url = 'http://graph.facebook.com/517267866/?fields=picture'; http.get(url, function(res) { var fbResponse = JSON.parse(res) console.log("Got response: " + fbResponse.picture); }).on('error', function(e) { console.log("Got error: " + e.message); }); 运行此代码将导致以下结果: undefined:1 ^ SyntaxError: Unexpected token o at Object.parse (native)

检测HTTP POST请求的字符编码

我正在构build一个Web服务,并有一个节点接受一个POST来创build一个新的资源。 资源需要两种内容types之一 – 一种我将要定义的XML格式,或者表单编码的variables。 这个想法是,消费应用程序可以直接POST XML,并从更好的validation等获益,但也有一个HTML接口,将张贴forms编码的东西。 显然,XML格式有一个字符集声明,但是我看不到只是通过查看POST来检测表单的字符集。 从Firefoxforms的典型post看起来像这样: POST /path HTTP/1.1 Host: www.myhostname.com User-Agent: Mozilla/5.0 […etc…] Accept: text/html,application/xhtml+xml, […etc…] Accept-Language: en-gb,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Content-Type: application/x-www-form-urlencoded Content-Length: 41 field1=value1&field2=value2&field3=value3 这似乎没有包含字符集的任何有用的指示。 从我所看到的,application / x-www-form-urlencodedtypes完全是用HTML定义的,它只是给出了%-encoding规则,但没有说什么charset数据应该在什么地方。 基本上,是否有任何告诉字符集的方式,如果我不知道原来呈现的HTML字符集? 否则,我将不得不根据字符是否存在来猜测字符集,而且从我所知道的情况来看,这总是有点不妥。

获取客户端IP地址:REMOTE_ADDR,HTTP_X_FORWARDED_FOR,还有什么可用的?

我知道这是一个标准的做法,看看这两个variables。 当然,他们很容易被欺骗。 我很好奇你能期望这些值(特别是HTTP_X_FORWARDED_FOR )能包含真正的信息,而不是被HTTP_X_FORWARDED_FOR或者被剥夺价值? 任何有这方面经验或统计的人? 还有什么可以帮助获取客户端的IP地址吗?

具有定义的超时的Java HTTP客户端请求

我想让我的云中的一些服务器BIT(内置testing)。 我需要这个请求在很大的超时时间内失败。 我应该如何做到这一点与Java? 尝试像下面的东西似乎并没有工作。 public class TestNodeAliveness { public static NodeStatus nodeBIT(String elasticIP) throws ClientProtocolException, IOException { HttpClient client = new DefaultHttpClient(); client.getParams().setIntParameter("http.connection.timeout", 1); HttpUriRequest request = new HttpGet("http://192.168.20.43"); HttpResponse response = client.execute(request); System.out.println(response.toString()); return null; } public static void main(String[] args) throws ClientProtocolException, IOException { nodeBIT(""); } } – 编辑:澄清什么库正在使用 – 我从apache使用httpclient,这里是相关的pom.xml部分 <dependency> <groupId>org.apache.httpcomponents</groupId> […]

Pragma和Cache-control标题之间的区别?

我读了关于维基百科上的Pragma标题: “Pragma:no-cache header字段是一个HTTP / 1.0头,用于请求中,这是浏览器告诉服务器和任何中间caching它想要一个新的资源版本,而不是服务器告诉浏览器不要caching资源,一些用户代理在响应中确实注意到了这个头,但是HTTP / 1.1 RFC特别警告不要依赖这种行为。 但我还没有明白它的作用? 其值为no-cache的Cache-Control头和值为no-cache Pragma之间有什么区别?

Http错误503服务不可用

一般来说,我对设置networking服务器确实很陌生。 我已经在Windows 8上安装了IIS 8,我正在尝试在本地设置一个小站点,同时进行一些开发。 在IIS中,我select添加站点,给一个名称,指向一个位置,我有一个index.html文件(我试过不同的位置,最新的一个c:\ inetpub \ wwwroot \testing文件夹),否则使用所有的默认设置。 但是,当我尝试浏览到本地主机,我得到 http错误503服务不可用。 我已经validation池已经启动,并且我已经在目标文件夹上提供了IIS_IUSRS完全控制 我周围search,但没有发现任何解决我的问题,并没有什么有用的事件日志或在C:\ Windows \ System32 \ LogFiles \ HTTPERR文件夹 谁能告诉我什么是错的?

Android:HTTP通讯应该使用“Accept-Encoding:gzip”

我有一个HTTP通信到Web服务器请求JSON数据。 我想用Content-Encoding: gzip压缩这个数据stream。 有没有一种方法可以设置Accept-Encoding: gzip在我的HttpClient中? Android引用中的gzipsearch不会显示与HTTP相关的任何内容,如您在此处所看到的。

通过HTTP将数据从浏览器传输到服务器的方法

是否有类似XHR的浏览器API可用于通过HTTP将二进制stream式传输到服务器? 我想做一个HTTP PUT请求,并且随着时间的推移以编程方式创build数据。 我不想一次创build所有这些数据,因为可能会有一些数据在内存中。 一些psueudo代码来说明我所得到的: var dataGenerator = new DataGenerator(); // Generates 8KB UInt8Array every second var streamToWriteTo; http.put('/example', function (requestStream) { streamToWriteTo = requestStream; }); dataGenerator.on('data', function (chunk) { if (!streamToWriteTo) { return; } streamToWriteTo.write(chunk); }); 我现在有一个web套接字解决scheme,但是更喜欢普通的HTTP与现有的服务器端代码更好地互操作。 编辑:我可以使用stream血的浏览器API。 我正在查看Fetch API,因为它支持ArrayBuffers,DataViews,Files等这样的请求体。 如果我可以以某种方式伪造这些对象之一,以便我可以使用具有dynamic数据的Fetch API,那对我来说是有用的。 我试图创build一个代理对象,看看是否有任何方法被称为我可以猴子补丁。 不幸的是,浏览器(至less在Chrome浏览器)正在用本地代码阅读,而不是在JS领域。 但是,如果我错了,请纠正我。

我应该使用什么编码进行HTTP基本authentication?

RFC2617表示将用户名和密码编码为base64,但不要说在创buildinput到base64algorithm中的八位字节时要使用什么字符编码。 我应该假设US-ASCII或UTF8? 还是有人在某个地方解决了这个问题?