Request简单总结

Request简单使用:

说起Request,在项目中基本都必须有用到,这里记录一下我了解到的关于Request的内容:

直接代码:

非常基本的当然有Reqeust.Form和Request.QueryString,两者的区别这里不多说.

1 String name=Request.Form["Name"];//post请求或者表单上传
2
3 String id=Request.QueryString["ID"];//get请求
4
5 String value=Request["Value"];//拿到所有过来的参数

其实QueryString也可以当成一个数组

int Count = System.Web.HttpContext.Current.Request.QueryString.Count;//Count属性可以得到传递过来的参数个数

//通过Keys属性得到"键值对"中的键值
for (int i = 0; i < Count; i++)
{
    if(System.Web.HttpContext.Current.Request.QueryString.Keys[i].ToLower().Equals("page"))
    {
       String value=System.Web.HttpContext.Current.Request.QueryString[i];
    }
}

清除QueryString:

 1         /// <summary>
 2         /// 清除Request.QueryString
 3         /// </summary>
 4         /// <param name="name"></param>
 5         public  void RemoveQueryString(string name)
 6         {
 7             enableQueryStringWriting();
 8             Request.QueryString.Remove(name);
 9         }
10
11         private void enableQueryStringWriting()
12         {
13             var qs = Request.QueryString;
14
15             var queryString = (NameValueCollection)Request.GetType().GetField(
16                 "_queryString",
17                 BindingFlags.NonPublic | BindingFlags.Instance
18             ).GetValue(Request);
19
20             PropertyInfo readOnlyInfo = queryString.GetType().GetProperty(
21                 "IsReadOnly",
22                 BindingFlags.NonPublic | BindingFlags.Instance
23             );
24
25             readOnlyInfo.SetValue(queryString, false, null);
26         } 

最后提一下,上述是通过C#代码来操作Request对象,正常情况下,使用JS来操作也是比较多的,代码如下:

 1 //获取QueryString的数组
 2
 3 function getQueryString(){
 4
 5      var result = location.search.match(new RegExp("[\?\&][^\?\&]+=[^\?\&]+","g"));
 6
 7      if(result == null){
 8
 9          return "";
10
11      }
12
13      for(var i = 0; i < result.length; i++){
14
15          result[i] = result[i].substring(1);
16
17      }
18
19      return result;
20
21 }
22 //根据QueryString参数名称获取值
23
24 function getQueryStringByName(name){
25
26      var result = location.search.match(new RegExp("[\?\&]" + name+ "=([^\&]+)","i"));
27
28      if(result == null || result.length < 1){
29
30          return "";
31
32      }
33
34      return result[1];
35
36 }
37 //根据QueryString参数索引获取值
38
39 function getQueryStringByIndex(index){
40
41      if(index == null){
42
43          return "";
44
45      }
46
47      var queryStringList = getQueryString();
48
49      if (index >= queryStringList.length){
50
51          return "";
52
53      }
54
55      var result = queryStringList[index];
56
57      var startIndex = result.indexOf("=") + 1;
58
59      result = result.substring(startIndex);
60
61      return result;
62
63 }
64
65     

END!

时间: 2025-01-02 17:51:10

Request简单总结的相关文章

使用request简单爬虫

import requests import re url = "http://www.acfun.tv/v/list110/index.htm?from=fixedNav" context = requests.get(url).text #print(html.text) pattern1 = re.compile('<div class="desc">(.*)</div>') #'.*'为贪婪模式,匹配到了还要然后找,匹配到不能匹配为止

phpMyadmin /scripts/setup.php Execute Arbitrary PHP Code Via A Crafted POST Request CVE-2010-3055

目录 1. 漏洞描述 2. 漏洞触发条件 3. 漏洞影响范围 4. 漏洞代码分析 5. 防御方法 6. 攻防思考 1. 漏洞描述 The configuration setup script (aka scripts/setup.php) in phpMyAdmin 2.11.x before 2.11.10.1 does not properly restrict key names in its output file, which allows remote attackers to ex

Python爬小草1024图片,盖达尔的诱惑(urllib.request)

项目说明: Python版本:3.7.2 模块:urllib.request,re,os,ssl 目标地址:http://小草.com/ 第二个爬虫项目,设备转移到了Mac上,Mac上的Pycharm有坑, 环境变量必须要配置好,解释器要选对,不然模块加载不出来  项目实现: #!/usr/bin/env python3 # -*- coding:utf-8 -*- #__author__ = 'vic' ##导入模块 import urllib.request,re,os 小草图片下载时后有s

UNIX高级环境编程(2)FIle I/O - 原子操作、共享文件描述符和I/O控制函数

引言: 本篇通过对open函数的讨论,引入原子操作,多进程通信(共享文件描述符)和内核相关的数据结构. 还会讨论集中常见的文件IO控制函数,包括: dup和dup2 sync,fsync和fdatasync fcntl ioctl /dev/fd ? 一.文件共享 这里所说的文件共享主要指的是进程间共享打开的文件. 这一节主要讨论文件在进程间共享的理论基础和数据结构,不涉及具体的技术实现,不同的系统可能会有不同的实现. 每一个打开的文件,涉及内核中的三种数据结构,这三种数据结构也是文件在进程间共

[Python WEB开发] 使用WSGI开发类Flask框架 (二)

WSGI     Web服务器网关接口 WSGI主要规定了Web服务器如何与Web应用程序进行通信,以及如何将Web应用程序链接在一起来处理一个请求. wsgiref Python中的WSGI参考模块 一.WSGI 应用程序端: 1. 根据WSGI定义,应用程序应该是可调用对象 2.该可调用对象必须有两个固定参数:一个是含有服务器环境变量的字典,另一个是可调用对象,该对象使用HTTP状态码和会返回给客户端的HTTP头来初始化响应 environ 变量包含一些熟悉的环境变量,如HTTP_HOST,

drupal index.php

$response->send();就是调用Header一些变量setCookieecho $content等一些操作 $autoloader = require_once 'autoload.php';获取加载类对象 $kernel = new DrupalKernel('prod', $autoloader);获取drupalKernel对象 $request = Request::createFromGlobals();获取request对象 也许最难的就是$response = $ker

SpringMVC数据回显

springMVC回显:pojo形参: √形参自动回显 √形参使用ModelAttribute √形参直接使用Model.request 简单类型形参: 不能自动回显.不能使用ModelAttribute √使用Model.request 方法: √使用ModelAttribute,将方法返回值进行回显 原文地址:https://www.cnblogs.com/thaipine/p/11609466.html

Volley简单学习使用二——Request

一.首先从每个POST或者GET请求的构造主体看起:XXXRequest (一)StringRequest 源码如下: public class StringRequest extends Request<String> { private final Listener<String> mListener; /** * 可以看到最终构造请求交由Request类去实现,HTTP的请求和响应均是由Request去处理 * * @param method the request {@li

Request —— 让 Node.js http请求变得超简单

先前一直比较关注前端的东西,对后端了解较少.不过一直对Node.js比较感兴趣,去年12月还去参加了阿里的CNODE交流聚会. 以后希望通过这里的博客分享一些学习Node.js的笔记.一方面总结了自己的学习心得,另一方面也可以和大家一起分享交流. 嗯,大概就是这样子. 这篇就先介绍一个Node.js的模块——request.有了这个模块,http请求变的超简单. 使用超简单 Request使用超简单,同时支持https和重定向. var request = require('request');