Tag: http

Python中简单的URL GET / POST函数

我似乎无法谷歌它,但我想要一个这样做的function: 接受3个参数(或更多,不pipe): url 一个参数字典 POST或GET 返回结果和响应代码。 有没有这样的片段?

如何指定HTTP错误代码?

我努力了: app.get('/', function(req, res, next) { var e = new Error('error message'); e.status = 400; next(e); }); 和: app.get('/', function(req, res, next) { res.statusCode = 400; var e = new Error('error message'); next(e); }); 但总是错误代码500被宣布。

HTTPcaching控制最大年龄,必须重新validation

我有几个与Cache-Control有关的查询。 如果我指定了Cache-Control max-age=3600, must-revalidate对于静态的html / js / images / css文件,必须使用HTTP标头中定义的Last Modified Header max-age=3600, must-revalidate : 在max-age过期之前,浏览器/代理caching(如Squid / Akamai)是否会一直到源服务器validation? 或者它会提供内容从caching到最大年龄到期? 在最大期限到期(即从caching到期)之后,是否存在If-Modified-Since检查或者是否从原始服务器重新下载了内容,而不是If-Modified-Since检查?

如何使用Apache HttpClient POST JSON请求?

我有如下的东西: final String url = "http://example.com"; final HttpClient httpClient = new HttpClient(); final PostMethod postMethod = new PostMethod(url); postMethod.addRequestHeader("Content-Type", "application/json"); postMethod.addParameters(new NameValuePair[]{ new NameValuePair("name", "value) }); httpClient.executeMethod(httpMethod); postMethod.getResponseBodyAsStream(); postMethod.releaseConnection(); 它不断回来一个500.服务提供商说,我需要发送JSON。 那么Apache HttpClient 3.1+是如何完成的呢?

PHP CURL DELETE请求

我正在尝试使用PHP和cURL来执行DELETE HTTP请求。 我已经读了很多地方如何做,但似乎没有为我工作。 这是我如何做到的: public function curl_req($path,$json,$req) { $ch = curl_init($this->__url.$path); $data = json_encode($json); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $req); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json','Content-Length: ' . strlen($data))); $result = curl_exec($ch); $result = json_decode($result); return $result; } 然后我继续使用我的function: public function deleteUser($extid) { $path = "/rest/user/".$extid."/;token=".$this->__token; $result = $this->curl_req($path,"","DELETE"); return $result; } 这给我HTTP内部服务器错误。 在我的其他函数使用相同的GET和POST […]

如何在Node上的http.request()设置超时?

我试图设置一个HTTP客户端使用http.request没有运气的超时。 到目前为止我所做的是这样的: var options = { … } var req = http.request(options, function(res) { // Usual stuff: on(data), on(end), chunks, etc… } /* This does not work TOO MUCH… sometimes the socket is not ready (undefined) expecially on rapid sequences of requests */ req.socket.setTimeout(myTimeout); req.socket.on('timeout', function() { req.abort(); }); req.write('something'); req.end(); 任何提示?

正确的方法来设置响应状态和JSON内容的REST API使用nodejs和express

我正在玩Nodejs,并通过构build一个小的restAPI来expression。 我的问题是,设置代码状态以及响应数据的最佳做法/最佳方法是什么? 让我用一点代码解释一下(我不会把启动服务器所需的节点和expression式代码,只是所关心的路由器方法): router.get('/users/:id', function(req, res, next) { var user = users.getUserById(req.params.id); res.json(user); }); exports.getUserById = function(id) { for (var i = 0; i < users.length; i++) { if (users[i].id == id) return users[i]; } }; 下面的代码完美的工作,当发送邮递员的请求时,我得到以下结果: 正如你所看到的,状态显示200,这是OK的。 但这是做到这一点的最好方法吗? 有没有这样的情况,我应该自己设置状态,以及返回的JSON? 还是总是用快递处理? 例如,我刚做了一个快速testing,稍微修改了上面的get方法: router.get('/users/:id', function(req, res, next) { var user = users.getUserById(req.params.id); if (user == null […]

如何在RESTful应用程序中防止CSRF?

跨站点请求伪造(CSRF)通常通过以下方法之一进行阻止: 检查引用 – RESTful但不可靠 将令牌插入表单并将令牌存储在服务器会话中 – 不是真正的RESTful 神秘的一次性URIs – 与令牌相同的原因不是RESTful 手动为这个请求发送密码(不是与HTTPauthentication一起使用的caching密码) – RESTful但不方便 我的想法是使用用户秘密,一个神秘但静态的表单id和JavaScript来生成令牌。 <form method="POST" action="/someresource" id="7099879082361234103"> <input type="hidden" name="token" value="generateToken(…)"> … </form> GET /usersecret/john_doe由来自经过validation的用户的JavaScript获取。 回应: OK 89070135420357234586534346这个秘密在概念上是静态的,但可以每天/每小时更改…以提高安全性。 这是唯一的保密的事情。 阅读隐藏的(但静态为所有用户!)formsID与JavaScript,与用户密码一起处理: generateToken(7099879082361234103, 89070135420357234586534346) 将表单连同生成的令牌一起发送到服务器。 由于服务器知道用户密码和表单ID,因此可以在发送之前运行与客户端相同的generateToken函数,并比较两个结果。 只有当两个值相等时,动作才会被授权。 这种方法有什么问题,尽pipe它没有JavaScript不起作用。 附录: 无状态的CSRF保护

如何在烧瓶中获得http头文件?

我是Python新手,使用Python Flask和生成REST API服务。 我想检查由angularjs发送的授权头。 但是我无法find在烧瓶中获得HTTP头的方法。 任何获得HTTP头授权的帮助表示赞赏。

简单而简洁的Scala的HTTP客户端库

我需要一个成熟的HTTP客户端库,它是scala的惯用语,简洁的用法,简单的语义。 我看了Apache HTTP和Scala Dispatch以及许多承诺一个惯用的Scala包装的新库。 Apache HTTP客户端确实需要冗长,而Dispatch很容易混淆。 什么是适合Scala使用的HTTP客户端?