我正在尝试使用构建器的 query() 方法为 reqwest 客户端构建查询字符串。但其中一个参数必须是像这样编码的多个值
?dt=t&dt=at&dt=m
Run Code Online (Sandbox Code Playgroud)
我不知道怎么办。
use reqwest::blocking::Client;
use serde_json::{json, Value as JsonValue};
fn main() {
let query = json!({
"client": "gtx",
"ie": "UTF-8", // input encoding
"oe": "UTF-8", // output encoding
"sl": "auto", // source language
"tl": "en", // target language
"dt": ["t", "at", "m"], // <<<<< ERROR
"q": "salut les gars. ca va? on y va!", // text to translate
});
let client = Client::new();
let response = client.get("https://translate.googleapis.com/translate_a/single")
.query(&query)
.send()
.unwrap();
if response.status().is_success() {
let body: …Run Code Online (Sandbox Code Playgroud) 我正在使用Python中的简单爬虫.目的是创建一个sitemap.xml.(你可以在这里找到非常版的alpha版本:http://code.google.com/p/sitemappy/)我注意到如果我使用包含非HTML实体(例如&)的URL生成xml,则xml不会验证,Google网站站长工具不接受此操作.有没有快速的方法来编码URL的查询字符串部分?
谢谢!
马特奥
我有一个看起来像这样的网址
http://example.com/index.php?id=111&title=word1 word2 word3
Run Code Online (Sandbox Code Playgroud)
我需要在使用curl请求url之前对空格进行编码.
但是如何urlencode网址的正确部分.
urlencode并rawurlencode编码https问号的斜线等.
首先,我要说这只是Android 2及更早版本的问题(4似乎没有受到影响,我没有测试3).
我有一个WebView从字符串加载HTML.HTML看起来像这样:
<html>
<head>
<link rel='stylesheet' type='text/css' href='http://www.robotsidekick.com/test.css?rev=0' />
</head>
<body>
<h1>Hello World</h1>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
您可以看到css文件如下所示:
body {
font-family: "Lucida Console", "Lucida Sans Typewriter", Monaco, "Bitstream Vera Sans Mono", monospace;
}
h1 {
border-bottom: 3px solid #ccc;
}
Run Code Online (Sandbox Code Playgroud)
该WebView代码如下所示:
final WebView webview = new WebView(this);
setContentView(webview);
final String result = "<html><head><link rel='stylesheet' type='text/css' href='http://www.robotsidekick.com/test.css?rev=0' /></head><body><h1>Hello World</h1></body></html>";
webview.loadData(result, "text/html", Encoding.UTF_8.toString());
Run Code Online (Sandbox Code Playgroud)
怎么了
我看到html代码,WebView好像我已经将mime类型设置为纯文本.

我期待什么(以及Android 4.x中会发生什么
我看到了html WebView
有一些事情必须是真实的,以显示我看到的症状:
href="http://www.robotsidekick.com/test.css?rev=0"而不是href="test.css"(但是如果它是真正的css文件 …我安装了solr很棒,但是我在选择价格范围内时卡住了。我想选择价格在20到50之间的所有产品,但似乎不起作用。cost> 20的solr语法是什么? AND费用<50或20到50之间的费用?
我正在通过URL检索外部源中的图像并将其保存到我的网络服务器中.不幸的是,我有时会收到以下错误:无法打开流:HTTP请求失败!HTTP/1.1 500内部服务器错误.
当我使用浏览器访问给定的URL时,图像显示并且有效.网址:
http://****.com/00/s/NTgwWDcyNg==/z/7LEAAMXQVT9TCcxx/$_85.JPG
Run Code Online (Sandbox Code Playgroud)
我使用的代码:
$opts = array('http'=>array('header' => "User-Agent:Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.75 Safari/537.1\r\n", 'timeout' => "360"));
$context = stream_context_create($opts);
$imageString = file_get_contents(urldecode(urlencode($filename)), false, $context);
$save = file_put_contents(dirname(dirname(__FILE__)) . '/tmp/' . $id . '_' . $sequenceNumber . '.jpg', $imageString);
Run Code Online (Sandbox Code Playgroud)
任何人都知道为什么我会收到500错误?
当我尝试在http.NewRequest中使用%2F包含"/"时,它会在调用url.Parse()时将其转换回"/".有什么方法可以防止这种情况吗?我尝试将百分比转换为%25,但它仍然不起作用.
你可以在这里看到它:http: //play.golang.org/p/YOnktREbbf
我正在创建一个简单的bash脚本来运行cURL POST命令.该脚本即使是相同的命令也不会将POST数据作为json发送.
$ curl --include --header 'Accept:application/json' --header 'Authorization:Basic xxxxxxxxxxxxxxxxx' --data '{"sourceTemplateId":111111111111111}' --header 'Content-Type:application/json' https://api.everbridge.net/rest/notifications/000000000000000
HTTP/1.1 200 OK
Server: nginx/1.8.0
Date: Wed, 18 May 2016 18:13:15 GMT
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive
{
"message" : "OK",
"id" : 5748251085623370,
"baseUri" : "https://api.everbridge.net/rest/notifications/000000000000000/",
"instanceUri" : "https://api.everbridge.net/rest/notifications/000000000000000/5748251085623370"
}
Run Code Online (Sandbox Code Playgroud)
$ ./Send_Not.sh
curl --include --header 'Accept:application/json' --header 'Authorization:Basic xxxxxxxxxxxxxxxxx' --data '{"sourceTemplateId":111111111111111}' --header 'Content-Type:application/json' https://api.everbridge.net/rest/notifications/000000000000000
Run Code Online (Sandbox Code Playgroud)
字面上相同的格式
$ ./Send_Not.sh
HTTP/1.1 415 Unsupported Media Type
Server: nginx/1.8.0
Date: Wed, 18 May 2016 18:28:50 …Run Code Online (Sandbox Code Playgroud) 如何对字符串进行urlencode并将其嵌入到URL中?请注意,我并不是要获取或发布数据,因此curl 的-Gand --data和--data-urlencode选项似乎并没有起作用。
例如,如果您使用
curl -G http://example.com/foo --data-urlencode "bar=spaced data"
Run Code Online (Sandbox Code Playgroud)
在功能上等同于
curl http://example.com/foo?bar=spaced%20data"
Run Code Online (Sandbox Code Playgroud)
这是不希望的。
我有一个foo/bar必须经过urlencode foo%2fbar并嵌入到URL中的字符串。
curl http://example.com/api/projects/foo%2fbar/events
Run Code Online (Sandbox Code Playgroud)
一个假设的解决方案(如果我可以找到类似的东西)将是在bash中预处理数据(如果存在某种urlencode功能的话)。
DATA=foo/bar
ENCODED=`urlencode $DATA`
curl http://example.com/api/projects/${ENCODED}/events
Run Code Online (Sandbox Code Playgroud)
另一个假设的解决方案(如果我能找到类似的东西)将是卷曲的切换,类似于以下内容:
curl http://example.com/api/projects/{0}/events --string-urlencode "0=foo/bar"
Run Code Online (Sandbox Code Playgroud)
我正在寻找这个问题的答案的特定原因是Gitlab API。例如,gitlab get单个项目 NAMESPACE/PROJECT_NAME是URL编码的,例如。/api/v3/projects/diaspora%2Fdiaspora(其中/以表示%2F)。除此之外,您可以请求项目中的各个属性,因此最终得到一个URL,例如http://example.com/projects/diaspora%2Fdiaspora/events
尽管这个问题是特定于gitlab的,但我想它通常总体上适用于REST API,而令我惊讶的是我找不到关于stackoverflow或Internet搜索的预先存在的答案。
我有一个简单的GET登录请求.用户名是Silver,密码是 MOto&@ 10
我正在使用SwiftHttp框架来处理请求.在点击登录请求时,我总是得到错误的响应.
但是,当在浏览器上点击登录请求URL(用服务器替换实际域)时,我得到了:
https:// server/api/check-access/by-login-pass?_key = wlyOF7TM8Y3tn19KUdlq&login = silver&pass = MOto%26 @ 10
编码和密码有问题.虽然我用百分比编码取而代之.这是我的代码:
do {
let passwordString = self.convertSpecialCharacters(string: password.text!)
print("%@", passwordString)
let opt = try HTTP.GET(Constants.kLoginUrl, parameters: ["login": username.text!, "pass": passwordString])
opt.start { response in
if let err = response.error {
print("error: \(err.localizedDescription)")
return
}
print("opt finished: \(response.description)")
self.parseLoginResponse(response.data)
}
} catch _ as NSError {
}
Run Code Online (Sandbox Code Playgroud)
这是convertSpecialCharacters:
func convertSpecialCharacters(string: String) -> String {
var newString …Run Code Online (Sandbox Code Playgroud)