我正在尝试使用python中的requests.get()获取以下格式的URL:
http://api.example.com/export/?format=json&key=site:dummy+type:example+group:wheel
#!/usr/local/bin/python
import requests
print(requests.__versiom__)
url = 'http://api.example.com/export/'
payload = {'format': 'json', 'key': 'site:dummy+type:example+group:wheel'}
r = requests.get(url, params=payload)
print(r.url)
但是,URL的编码百分比,我没有得到预期的响应.
2.2.1
http://api.example.com/export/?key=site%3Adummy%2Btype%3Aexample%2Bgroup%3Awheel&format=json
如果我直接传递URL,这是有效的:
url = http://api.example.com/export/?format=json&key=site:dummy+type:example+group:wheel
r = requests.get(url)
有没有办法以原始形式传递参数 - 没有百分比编码?
谢谢!
是否有一个javascript函数,它接受一个字符串并将其转换为另一个百分比编码的字符串?那样的"This Guy"变成了"This%20Guy".
谢谢
被%3B区别对待,以%3b在网址是什么?
我已经尝试了很多方法,但这个小小的字符串不能被URL解码.
NSString *decoded;
NSString *encoded = @"fields=ID%2CdeviceToken";
decoded = (__bridge NSString*)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(NULL, (CFStringRef)encoded, NULL, NSUTF8StringEncoding);
NSLog(@"decodedString %@", decoded);
上面的代码只是在替换百分比转义后记录相同的(!)字符串.
那里有可靠的解决方案吗?我认为基于某些文档的某种RegEx解决方案可行.有什么建议吗?
我想使用node.js发送http请求.我做:
http = require('http');
var options = {
    host: 'www.mainsms.ru',
    path: '/api/mainsms/message/send?project='+project+'&sender='+sender+'&message='+message+'&recipients='+from+'&sign='+sign
    };
    http.get(options, function(res) {
    console.log('STATUS: ' + res.statusCode);
    console.log('HEADERS: ' + JSON.stringify(res.headers));
    }).on('error', function(e) {
    console.log('ERROR: ' + e.message);
    });
我path这样的时候:
/api/mainsms/message/send?project=geoMessage&sender=gis&message=tester_response&recipients=79089145***&sign=2c4135e0f84d2c535846db17b1cec3c6
这是工作.但是当message参数包含任何空格时,例如tester response所有空格.在控制台中我看到http使用这个网址:
  /api/mainsms/message/send?project=geoMessage&sender=gis&message=tester
如何发送空间.或者我只是不能在网址中使用空格?
我有一个包含'%'的默认值,我也将其插入到我的参数的帮助文档中.例如:
default = "5% foo"
animrender_group.add_argument(
    "--foo",
    default=default,
    help="Foo amount. Default: %s" % default,
)
args = parser.parse_args()
parse_args()上的Argparse错误
[snip]
    args = parser.parse_args()
[snip]"../python2.5/site-packages/argparse.py", line 622, in _expand_help
    return self._get_help_string(action) % params
ValueError: unsupported format character 'O' (0x4f) at index 83
根据RFC 3986,以下字符是保留的,需要进行百分比编码才能在URI中使用,而不是作为其保留用途:
:/?#[]@!$&'()*+,;=
此外,它指定了一些特别保留的字符:a-zA-Z0-9\-._~
似乎很清楚,一般应该编码保留字符(以防止误解)而不编码未保留字符(为了便于阅读),但是如何处理不属于任何类别的字符?例如{,}并没有出现在任何一个列表中,但它们是标准的ASCII字符.
期待现代浏览器的指导,似乎它们有时会有不同的行为.例如,考虑将URL粘贴https://www.google.com/search?q={到Web浏览器的地址栏中:
https://www.google.com/search?q=%7B但是,如果一个粘贴https://www.google.com/#q={(删除"搜索"并将其更改?为a #,使角色成为片段/哈希而不是查询字符串),我们会发现:
https://www.google.com/#q=%7B(通过JavaScript)https://www.google.com/#q=%7B(在执行JavaScript之前)此外,当使用JavaScript异步执行请求时(即使用此MDN示例修改为使用URL ?q={),URL不会自动进行百分比编码.(我猜这是因为XMLHttpRequest API假定事先对URL进行编码/转义.)
我想(出于与奇怪的客户要求有关的原因)使用{和}在URL的文件名部分中没有(1)破坏事物,理想情况下也没有(2)在现代网络面板中创建丑陋的百分比编码条目浏览器的网络检查员/调试员.
我有一个果园网站,并有以下问题:
如果我使用URL:http://asiahotelct.com/tours/ct---chau-%C4%91oc---ha-tien-3n2%C4%91,那没关系.但是当我改变网址/时%2f(如此:http://asiahotelct.com/tours%2fct---chau-%C4%91oc---ha-tien-3n2%C4%91),它就不再适用了.
为什么/不能被取代%2f?