Questions tagged «http»

超文本传输​​协议(HTTP)是一种应用程序级网络协议,用于在万维网上传输内容。

12
带有Alamofire正文的简单字符串的POST请求
在iOS应用中,如何使用Alamofire在HTTP正文中使用简单字符串发送POST请求? 默认情况下,Alamofire需要用于请求的参数: Alamofire.request(.POST, "http://mywebsite.com/post-request", parameters: ["foo": "bar"]) 这些参数包含键值对。但是我不想在HTTP正文中发送带有键值字符串的请求。 我的意思是这样的: Alamofire.request(.POST, "http://mywebsite.com/post-request", body: "myBodyString")
84 ios  http  swift  request  alamofire 


6
我该如何处理HTTP GET查询字符串的长度限制,并且仍然希望成为RESTful?
如http://www.boutell.com/newfaq/misc/urllength.html中所述,HTTP查询字符串的长度有限。它可能受客户端(Firefox,IE等),服务器(Apache,IIS等)或网络设备(应用防火墙等)的限制。 今天,我用搜索表来面对这个问题。我们开发了一个包含很多字段的搜索表单,该表单作为GET请求发送到服务器,因此我可以将结果页面添加为书签。 我们的字段太多,查询字符串的长度为1100个字节,而防火墙则丢弃了超过1024个字节的HTTP GET请求。我们的系统管理员建议我们改用POST,因此没有限制。 当然,POST可以工作,但是我真的觉得搜索是GET而不是POST。因此,我想我将检查我们的字段名称,以确保查询字符串不会太长,如果不能,我将务实并使用POST。 但是RESTful服务的设计是否存在缺陷?如果GET请求的长度有限,该如何将大型对象发送到RESTful Web服务?举例来说,如果我有一个程序,使基于文件的计算,我想提供一个RESTful Web服务这样的:http://compute.com?content=<base64 file>。这将不起作用,因为查询字符串没有无限的长度。 我有点困惑
84 http  rest 

4
如何在Android中写入SD卡上的文件夹?
我正在使用以下代码从服务器下载文件,然后将其写入SD卡的根目录,一切正常: package com.downloader; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import android.os.Environment; import android.util.Log; public class Downloader { public void DownloadFile(String fileURL, String fileName) { try { File root = Environment.getExternalStorageDirectory(); URL u = new URL(fileURL); HttpURLConnection c = (HttpURLConnection) u.openConnection(); c.setRequestMethod("GET"); c.setDoOutput(true); c.connect(); FileOutputStream f = …

3
如何响应HTTP OPTIONS请求?
OPTIONS假定使用HTTP方法来确定服务器在给定资源上支持的其他方法。鉴于此,我有两个问题: 此响应是什么样的?我在Public,Allow甚至Access-Control-Allow-Methods标题中都看到了带有CSV列表的示例。他们都需要吗?有什么不同? RFC 2616在这里似乎不是很有帮助。 使用此列表列出资源在非REST-API环境中支持的操作是否合适?例如,如果我ConversionController支持action convert,这样的响应是否有意义: 请求: OPTIONS /conversion HTTP/1.1 响应: HTTP/1.1 200 OK ... Allow: CONVERT ...
83 http 

5
带有查询字符串参数的node.js http'get'请求
我现在有一个HTTP客户端的Node.js应用程序。所以我在做: var query = require('querystring').stringify(propertiesObject); http.get(url + query, function(res) { console.log("Got response: " + res.statusCode); }).on('error', function(e) { console.log("Got error: " + e.message); }); 这似乎是完成此任务的一种好方法。但是,我有些沮丧,我必须执行此url + query步骤。这应该由一个公共库封装,但是我还没有看到它存在于节点的http库中,而且我不确定哪个标准的npm软件包可以完成它。有没有一种合理使用的更好的方法? url.format方法节省了构建自己的URL的工作。但理想情况下,请求的级别也将高于此级别。

7
Apache HttpClient API中的CloseableHttpClient和HttpClient有什么区别?
我正在研究由我们公司开发的应用程序。它使用Apache HttpClient库。在源代码中,它使用HttpClient该类来创建实例以连接到服务器。 我想了解Apache HttpClient,并且已经看过这组示例。所有示例均使用CloseableHttpClient代替HttpClient。所以我认为CloseableHttpClient是的扩展版本HttpClient。如果是这种情况,我有两个问题: 两者有什么区别? 建议为我的新开发使用哪个课程?


2
适用于不同类型资源的理想HTTP缓存控制标头
我想找到一组最小的标头集,这些标头可以与“所有”缓存和浏览器一起使用(也在使用HTTPS时使用!) 在我的网站上,我将拥有三种资源: (1)永久可缓存(公开/对所有用户均等) 示例:0A470E87CC58EE133616F402B5DDFE1C.cache.html(由GWT自动生成) 这些文件在更改内容时(基于MD5)会自动分配一个新名称。 即使使用HTTPS,也应该尽可能地对其进行缓存(因此,我认为应该设置Cache-Control: public,尤其是对于Firefox?) 如果内容已更改,他们不应该要求客户端往返服务器进行验证。 (2)偶尔更改(公开/对所有用户均等) 示例:index.html,mymodule.nocache.js 部署新版本的网站时,这些文件将更改其内容而不会更改URL。 它们可以被缓存,但是可能每次都需要往返来重新验证。 (3)每个请求的个人(私人/用户特定) 示例:JSON响应 在任何情况下,都不应将这些资源未加密地缓存到磁盘中。(除非我可能会缓存一些特定的请求。) 我对每种类型可能使用的标头有一个大致的了解,但是总会缺少一些东西。

4
是否在HTTP标头或响应正文中保留错误消息?
我有一个面向iPhone和Android客户端的REST服务。目前,我遵循HTTP代码200、400、401、403、404、409、500等。 我的问题是,将错误的原因/描述/原因放在哪里?像这样,让REST API始终在标头中始终具有自定义的原因是否更有意义? < HTTP/1.1 400 Bad Request - Missing Required Parameters. < Date: Thu, 20 Dec 2012 01:09:06 GMT < Server: Apache/2.2.22 (Ubuntu) < Connection: close < Transfer-Encoding: chunked 还是通过JSON将其包含在Response Body中更好? < HTTP/1.1 400 Bad Request < Date: Thu, 20 Dec 2012 01:09:06 GMT < Server: Apache/2.2.22 (Ubuntu) < …
82 http  rest  http-error 

7
如何从Node.js http获取请求中获取数据
我正在尝试让我的函数返回http get请求,但是,无论如何,它似乎在?scope中丢失了。我对Node.js不熟悉,因此不胜感激 function getData(){ var http = require('http'); var str = ''; var options = { host: 'www.random.org', path: '/integers/?num=1&min=1&max=10&col=1&base=10&format=plain&rnd=new' }; callback = function(response) { response.on('data', function (chunk) { str += chunk; }); response.on('end', function () { console.log(str); }); //return str; } var req = http.request(options, callback).end(); // These just …

5
自定义授权HTTP标头
当客户端向API发送请求时,我需要对客户端进行身份验证。客户端具有API令牌,我正在考虑使用标准Authorization标头将令牌发送到服务器。 通常,此标头用于Basic和Digest身份验证。但是我不知道是否允许自定义此标头的值并使用自定义的身份验证方案,例如: Authorization: Token 1af538baa9045a84c0e889f672baf83ff24 你会推荐吗?还是有更好的发送令牌的方法?

4
HTTP Range标头
我正在阅读http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35, 并试图弄清楚如何继续文件下载。 例如,假设一个文件的长度为100个字节,而我拥有所有100个字节。但是,我不知道预期的文件大小应该是多少,所以我要文件并指定一个看起来像这样的Range标头: Range: bytes=100- 这是有效的范围请求吗?

2
提琴手HTTPMethod(GET / PUT / POST / DELETE ...)列
有没有一种简单的方法可以将HTTPMethod(GET / PUT / POST / DELETE ...)列添加到提琴手显示? 在fiddler Wiki上找到了以下有关添加会话变量的说明: cols添加“客户端IP地址” X-CLIENTIP 但是HTTPMethod似乎不那么容易。 有人知道做这件事的方法或有一个很好的提琴手脚本吗?
81 http  fiddler 

6
如何将用户的浏览器URL重定向到Node.js中的其他页面?
在我尝试编写的应用程序中,主页(http:// localhost:8675)具有以下形式: <form action='/?joinnew' method='post'> <button>Start</button> </form> 这是server.js中的代码: http.createServer(function(request, response) { var root = url.parse(request.url).pathname.split('/')[1]; if (root == '') { var query = url.parse(request.url).search: if (query == '?joinnew') { var newRoom = getAvaliableRoomId(); // '8dn1u', 'idjh1', '8jm84', etc. // redirect the user's web browser to a new url // ??? …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.