标签: http

如何让HttpURLConnection使用代理?

如果我这样做......

conn = new URL(urlString).openConnection();
System.out.println("Proxy? " + conn.usingProxy());
Run Code Online (Sandbox Code Playgroud)

它打印

Proxy? false
Run Code Online (Sandbox Code Playgroud)

问题是,我支持代理.JVM从哪里获取Windows上的代理信息?我该如何设置?我的所有其他应用程序似乎对我的代理非常满意.

java windows proxy http

128
推荐指数
6
解决办法
25万
查看次数

如何在node.js http.Client中使用http代理?

我想使用标准从node.js进行传出的HTTP调用http.Client.但我无法直接从我的网络到达远程服务器,需要通过代理.

如何告诉node.js使用代理?

proxy http node.js

128
推荐指数
9
解决办法
17万
查看次数

REST,HTTP DELETE和参数

是否有任何关于为HTTP DELETE请求提供参数的非RESTful?


我的情况是我正在建模"您确定要删除它吗?" 场景.在某些情况下,资源的状态表明请求的删除可能无效.你可以想象一些自己需要确认删除的场景

我们采用的解决方案是将参数传递给删除请求以指示可以继续删除("?force_delete = true")

例如

DELETE http://server/resource/id?force_delete=true
Run Code Online (Sandbox Code Playgroud)

我相信它仍然是宁静的:

(a)DELETE的语义没有被改变 - 用户仍然可以发送正常的DELETE请求,但这可能会失败,409响应的主体将解释原因.我说可能会失败,因为(出于不值得解释的原因)在某些情况下没有理由提示用户.

(b)Roy的论文中没有任何内容表明它违背了REST的精神 - 为什么会有,因为HTTP只是REST的一个实现,所以为什么传递HTTP参数很重要


有人能指出一个明确的陈述,指出为什么这不是RESTful?

在一个相关的问题上,如果用户没有指定force_delete然后我正在返回409 Conflict- 这是最合适的响应代码吗?


跟进

经过一些进一步的研究,我认为向DELETE添加参数可能违反了几个原则.

首先,实施可能违反了"统一界面"(参见Roy的论文第5.1.5节)

通过添加'force_delete',我们在已经很好定义的DELETE方法上添加了一个额外的约束.这种约束只对我们有意义.

您还可能认为它违反了"5.1.2客户端 - 服务器",因为确认对话确实是UI问题,并且并非所有客户端都希望确认删除.

有人建议吗?

rest http

126
推荐指数
4
解决办法
11万
查看次数

使用Http Post发送图像

我想使用Http Post将图像从android客户端发送到Django服务器.图像从图库中选择.目前,我使用列表值名称Pairs将必要的数据发送到服务器并从JSON接收来自Django的响应.是否可以将相同的方法用于图像(使用嵌入在JSON响应中的图像的URL)?

此外,这是一种更好的方法:远程访问图像而无需从服务器下载图像或下载并将其存储在Bitmap数组中并在本地使用它们?图像数量很少(<10)且尺寸较小(50*50倾角).

任何解决这些问题的教程都将非常感激.

编辑:从库中选择的图像在将其缩放到所需大小后发送到服务器.

django android http

126
推荐指数
4
解决办法
14万
查看次数

从浏览器获取客户端时区

有没有可靠的方法从客户端浏览器获取时区?我看到了以下链接,但我想要一个更强大的解决方案.

使用JavaScript自动检测时区

JavaScript中的时区检测

javascript browser timezone http

125
推荐指数
5
解决办法
17万
查看次数

是否允许包含空格的URL?

是否允许URI(特别是HTTP URL)包含一个或多个空格字符?如果必须对URL 进行编码,这+只是一个常用的约定,还是合法的替代方案?

特别是,有人可以指向一个RFC,表明必须编码带空格的URL 吗?

问题的动机:在对网站进行beta测试时,我注意到有些网址是用空格构建的.Firefox似乎做对了,让我感到惊讶!但我希望能够将开发人员指向RFC,以便他们觉得需要修复这些URL.

html url encoding http

124
推荐指数
8
解决办法
20万
查看次数

自定义HTTP授权标头

我想知道将自定义数据放入HTTP授权标头是否可以接受.我们正在设计RESTful API,我们可能需要一种方法来指定自定义授权方法.举个例子,我们称之为FIRE-TOKEN身份验证.

根据规范,这样的事情是否有效并允许: Authorization: FIRE-TOKEN 0PN5J17HBGZHT7JJ3X82:frJIUN8DYpKDtOLCwo//yllqDzg=

第二个字符串的第一部分(在':'之前)是API密钥,第二部分是查询字符串的哈希.

rest authorization header http

124
推荐指数
4
解决办法
14万
查看次数

124
推荐指数
2
解决办法
6万
查看次数

重定向到登录页面时,什么是正确的HTTP状态代码?

当用户未登录并尝试访问需要登录的页面时,重定向到登录页面的正确HTTP状态代码是什么?

我问,因为W3C 提出的3xx响应代码似乎都不符合要求:

10.3.1 300多种选择

所请求的资源对应于一组表示中的任何一个,每个表示具有其自己的特定位置,并且正在提供代理驱动的协商信息(部分12),以便用户(或用户代理)可以选择优选表示并重定向其请求到该位置.

除非是HEAD请求,否则响应应该包括一个实体,其中包含资源特征和位置列表,用户或用户代理可以从中选择最合适的资源特征和位置.实体格式由Content-Type头字段中给出的媒体类型指定.取决于格式和功能

用户代理,可以自动选择最合适的选择.但是,该规范没有为这种自动选择定义任何标准.

如果服务器具有首选的表示选择,则它应该在Location字段中包含该表示的特定URI; 用户代理可以使用Location字段值进行自动重定向.除非另有说明,否则该响应是可缓存的.

10.3.2 301永久移动

已为所请求的资源分配了一个新的永久URI,并且此资源的任何将来的引用应该使用返回的URI之一.具有链接编辑功能的客户端应尽可能自动将对Request-URI的引用重新链接到服务器返回的一个或多个新引用.除非另有说明,否则该响应是可缓存的.

新的永久URI应该由响应中的Location字段给出.除非请求方法是HEAD,否则响应的实体应该包含一个带有指向新URI的超链接的短超文本注释.

如果收到301状态代码以响应GET或HEAD以外的请求,则用户代理不得自动重定向请求,除非用户可以确认,因为这可能会改变发出请求的条件.

  Note: When automatically redirecting a POST request after
  receiving a 301 status code, some existing HTTP/1.0 user agents
  will erroneously change it into a GET request.
Run Code Online (Sandbox Code Playgroud)

10.3.3 302找到

请求的资源暂时驻留在不同的URI下.由于重定向有时可能会被更改,因此客户端应该继续使用Request-URI来处理将来的请求.如果由Cache-Control或Expires头字段指示,则此响应仅可缓存.

临时URI应该由响应中的Location字段给出.除非请求方法是HEAD,否则响应的实体应该包含一个带有指向新URI的超链接的短超文本注释.

如果收到302状态代码以响应GET或HEAD以外的请求,则用户代理不得自动重定向请求,除非用户可以确认,因为这可能会改变发出请求的条件.

  Note: RFC 1945 and RFC 2068 specify that the client is not allowed
  to change the method on the redirected request.  However, most
  existing user agent implementations treat 302 as …
Run Code Online (Sandbox Code Playgroud)

redirect http http-status-codes

123
推荐指数
4
解决办法
5万
查看次数

Angular 4 HttpClient查询参数

我一直在寻找一种方式来传递查询paramters与新API调用HttpClientModuleHttpClient,还没有找到一个解决方案.使用旧Http模块,您可以编写类似这样的内容.

getNamespaceLogs(logNamespace) {

    // Setup log namespace query parameter
    let params = new URLSearchParams();
    params.set('logNamespace', logNamespace);

    this._Http.get(`${API_URL}/api/v1/data/logs`, { search: params })
}
Run Code Online (Sandbox Code Playgroud)

这将导致对以下URL的API调用:

localhost:3001/api/v1/data/logs?logNamespace=somelogsnamespace

但是,新HttpClient get()方法没有search属性,所以我想知道在哪里传递查询参数?

http typescript lodash angular angular-httpclient

123
推荐指数
5
解决办法
15万
查看次数