我正在使用CharacterSet.urlQueryAllowed百分比编码添加到字符串.
有些字符编码不希望我的方式(即&并?没有改变).话虽如此,我有了构建自定义的想法CharacterSet,理想情况是基于现有的自定义.
这样做的最佳方法是什么?
我一直对URL/HTML编码/转义感到困惑.我正在使用PHP,所以想清楚一些事情.
我可以说我应该经常使用
urlencode:用于单个查询字符串部分
$url = 'http://test.com?param1=' . urlencode('some data') . '¶m2=' . urlencode('something else');
Run Code Online (Sandbox Code Playgroud)htmlentities:用于转义特殊字符,<>以便浏览器正确呈现
是否还有其他地方可以使用每个功能.我不擅长所有这些逃避的东西,总是被他们困惑
我目前正在使用python请求包来发出JSON请求.不幸的是,我需要查询的服务有每日最大请求限制.对,我知道,我缓存了已执行的请求网址,所以如果我超出这个限制,我知道第二天该在哪里继续.
r = requests.get('http://someurl.com', params=request_parameters)
log.append(r.url)
Run Code Online (Sandbox Code Playgroud)
但是,为了使用这个日志,第二天我需要在实际执行请求之前在我的程序中创建请求URL,这样我就可以将它们与日志中的字符串进行匹配.否则,它会降低我的每日限额.你有谁知道怎么做?我在请求包中找不到任何适当的方法.
我想使用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);
});
Run Code Online (Sandbox Code Playgroud)
我path这样的时候:
/api/mainsms/message/send?project=geoMessage&sender=gis&message=tester_response&recipients=79089145***&sign=2c4135e0f84d2c535846db17b1cec3c6
Run Code Online (Sandbox Code Playgroud)
这是工作.但是当message参数包含任何空格时,例如tester response所有空格.在控制台中我看到http使用这个网址:
/api/mainsms/message/send?project=geoMessage&sender=gis&message=tester
Run Code Online (Sandbox Code Playgroud)
如何发送空间.或者我只是不能在网址中使用空格?
在Java中,我需要使用HTTP Post向服务器发送请求,但如果在URL的参数中包含一些特殊字符,则抛出以下异常
java.lang.IllegalArgumentException:URLDecoder:转义(%)模式中的非法十六进制字符 - 对于输入字符串:"&'"
发送数据的代码
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(URL);
String sessionId = RequestUtil.getRequest().getSession().getId();
String data = arg.getData().toString();
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair(param1, data));
params.add(new BasicNameValuePair(param2, sessionId));
httpPost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
HttpResponse response = (HttpResponse) httpclient.execute(httpPost);
Run Code Online (Sandbox Code Playgroud)
在服务器端,我使用以下代码来读取信息
String data = request.getParameter(param1);
if (data != null) {
actionArg = new ChannelArg(URLDecoder.decode(data, "UTF-8"));
}
Run Code Online (Sandbox Code Playgroud)
代码工作正常,但如果我输入一些特殊的字符,如[aああ#$%&'(<>?/.,あああああ],它将抛出异常.我想知道是否有人可以帮助我一些提示能够编码并解码特殊字符?
非常感谢你提前.
这是网址:
http://localhost/test.php?id=http://google.com/?var=234&key=234
Run Code Online (Sandbox Code Playgroud)
我无法获得完整的$ _GET ['id']或$ _REQUEST ['d'].
<?php
print_r($_REQUEST['id']);
//And this is the output http://google.com/?var=234
//the **&key=234** ain't show
?>
Run Code Online (Sandbox Code Playgroud) 我正在测试PHP urlencode()与Java java.net.URLEncoder.encode().
Java的
String all = "";
for (int i = 32; i < 256; ++i) {
all += (char) i;
}
System.out.println("All characters: -||" + all + "||-");
try {
System.out.println("Encoded characters: -||" + URLEncoder.encode(all, "utf8") + "||-");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
PHP
$all = "";
for($i = 32; $i < 256; ++$i)
{
$all = $all.chr($i);
}
echo($all.PHP_EOL);
echo(urlencode(utf8_encode($all)).PHP_EOL);
Run Code Online (Sandbox Code Playgroud)
除了没有用Java编码的"星号"字符和PHP翻译为%2A之外,所有字符似乎都以相同的方式编码.哪个行为应该是'正确的',如果有的话?
注意:我也尝试rawurlencode()过 - 没有运气.
是否可以在不使用自己的分隔符的情况下为单个URL参数传递多个值?
我想要做的是后端期望输入参数urls具有一个或多个值.它可以设置为单个或多个URL.有什么方法可以设置urls参数,使其具有多个值?我不能使用自己的分隔符,因为它可以是值本身的一部分.
示例:http://example.com/?urls = [value,value2 ...]
该urls参数可以设置为仅仅http://google.com或者可以设置为http://google.com http://yahoo.com ....在后端,我想将每个url作为单独的值处理.
我正在学习的最重要的概念之一饼干在PHP中的细节.
在研究Cookies的过程中,我发现" cookie的价值在发送cookie时自动进行URL编码,并在收到时自动解码(以防止URL编码,改为使用setrawcookie()). "
上述陈述在我的脑海中引起了如此多的疑虑,如下:
setrawcookie()结束有setcookie()什么好处/缺点?setcookie()还是setrawcookie()?$_COOKIE['cookie_variable'] = 'some_value'而不是使用setcookie()或setrawcookie()?如果有人能够通过完美,合适且易于理解的代码示例以及逐步清晰,清晰,易于理解的解释清除我上面提到的所有疑问,那将对我有很大的帮助.
谢谢.
为什么%2526用而不是%26编码&?
我调用一个URL到外部网站,当我编码时,&因为%2526参数正确传递但我刚刚使用%26它们不是.