Request["key"]vs Request.Params["key"]vsRequest.QueryString["key"]
你经验丰富的程序员使用哪种方法?为什么?
假设我有这样的网址:
http://www.example.com?key=123&KEY=198
Run Code Online (Sandbox Code Playgroud)
那将是什么结果
request.querystring("key")
and
request.querystring("KEY")
Run Code Online (Sandbox Code Playgroud)
我有点困惑.
我经常使用Request.QueryString[]变量.
在我Page_load经常做的事情:
int id = -1;
if (Request.QueryString["id"] != null) {
try
{
id = int.Parse(Request.QueryString["id"]);
}
catch
{
// deal with it
}
}
DoSomethingSpectacularNow(id);
Run Code Online (Sandbox Code Playgroud)
这一切似乎有点笨拙和垃圾.你怎么处理你Request.QueryString[]的?
我试图Request.QueryString("SYSTEM")从UrlReferrer 获取这样的QueryString值.我看到我可以使用它,Request.UrlReferrer.Query()但它不允许我指定确切的参数
我可以解析Query()值,但我想知道是否可以做这样的事情 Request.UrlReferrer.QueryString("SYSTEM")
vb.net asp.net http-referer request.querystring query-string
场景:我们的开发人员正在尝试用Node.JS Restful API替换Web服务(用C#.Net编写).
问题:现在我们需要按原样处理传入的请求(我们无法控制它).所以以下是传入URL的格式:
http://www.website.com/Service.aspx?UID=Trans001&FacebookID=ae67ea324&GetDetailType=FULL
我能够处理如下的URL:
http://www.website.com/service/Trans001/ae67ea324/FULL
我可以从上面的URL解析/读取参数
码:
var server = require('restify').createServer();
function respond(req, res, next) {
console.log("req.params.UID:" + req.params.UID);
console.log("req.params.FacebookID:" + req.params.FacebookID);
console.log("req.params.GetDetailType" + req.params.GetDetailType);
}
server.get('/service/:UID/:FacebookID/:GetDetailType', respond);
server.listen(8080, function () {
console.log('%s listening at %s', server.name, server.url);
});
Run Code Online (Sandbox Code Playgroud)
问题:如何从URL中读取格式为的多个参数http://www.website.com/Service.aspx?UID=Trans001&FacebookID=ae67ea324
request.querystring node.js query-string querystringparameter restify
我是java play框架的新手.我已经设置了所有正常路线,如/ something /:somthingValue和所有其他路线.现在我想创建路由接受查询参数,如
/东西?X = 10&y = 20&Z = 30
在这里,我希望在"?"之后获得所有参数 as key ==> value pair.
我有一个这样的代码示例:
location.href = location.href + "/Edit?pID=" + hTable.getObj().ID; ; //aspx
parID = Request.QueryString["pID"]; //c#
Run Code Online (Sandbox Code Playgroud)
它有效,我的问题是 - 如何?逻辑是什么?谢谢 :)
有人能告诉我Request.Form和之间的确切区别 Request.QueryString吗?
我知道一个区别,比如
如果HTTP请求方法是POST,则用户提交的数据位于 Request.Form()集合中
如果HTTP请求方法是GET,则用户提交的数据位于 Request.QueryString()集合中
还有其他区别吗?任何一个例子将不胜感激.
我有以下代码,但它似乎不起作用:
var post_req = {
array: [
[ {
param1: 'something',
param2: 123
} ],
[ ],
[ ],
[ {
param2: 'something',
param4: 1234,
param1: 'hello'
} ]
]
};
var data_send = querystring.stringify(post_req);
var request = client.request('POST', '/', headers);
request.end(data_send);
Run Code Online (Sandbox Code Playgroud)
和
if( req.method == 'POST' ) {
req.addListener('data', function(chunk)
{
POST = querystring.parse(chunk);
console.log(POST);
}
}
Run Code Online (Sandbox Code Playgroud)
我最终得到5个子数组,对应于对象中的5个参数,但名称中包含额外的'] ['字符:
{ array:
[ { '][param1': 'something' }
, { '][param2': '123' }
, { '][param2': 'something' }
, { '][param4': …Run Code Online (Sandbox Code Playgroud) 我搜索了SO并找到了类似的问题,但没有人比较这三个问题.这让我感到惊讶,所以如果有人知道,请指点我.
有许多不同的方法来解析请求的查询字符串......"正确"方式(IMO)应该处理空值/缺失值,但也适当地解码参数值.以下哪项是最好的方法?
方法1
string suffix = Request.QueryString.Get("suffix") ?? "DefaultSuffix";
Run Code Online (Sandbox Code Playgroud)
方法2
string suffix = Request.QueryString["suffix"] ?? "DefaultSuffix";
Run Code Online (Sandbox Code Playgroud)
方法3
NameValueCollection params = HttpUtility.ParseQueryString(Request.RawUrl);
string suffix = params.Get("suffix") ?? "DefaultSuffix";
Run Code Online (Sandbox Code Playgroud)
方法4
NameValueCollection params = HttpUtility.ParseQueryString(Request.RawUrl);
string suffix = params["suffix"] ?? "DefaultSuffix";
Run Code Online (Sandbox Code Playgroud)
问题:
Request.QueryString["suffix"]如果没有指定后缀,会返回null吗?(令人尴尬的基本问题,我知道)
是否HttpUtility.ParseQueryString()提供Request.QueryString直接访问的任何额外功能?
MSDN文档列出了这个警告:
The ParseQueryString method uses query strings that might contain user input, which is a potential security threat. By default, ASP.NET Web pages validate that user input does not include script or HTML elements. …
asp.net ×5
c# ×5
query-string ×3
http ×2
node.js ×2
coding-style ×1
http-referer ×1
isnumeric ×1
java ×1
parameters ×1
request ×1
request.form ×1
restify ×1
tryparse ×1
uri ×1
url ×1
vb.net ×1