C# HTTP request相关总结

最近好多应用都用到了HTTP,然后每次使用,都重新找一遍资料,没有把知识总结起来,学不到什么。现在总结下之前遇到的情况的处理方式。

1:WP8.1 httpRequest异步读取数据 GET

 1  async  ReadUrlAsync(int tempid)
 2         {
 3
 4
 5             using (var client = new HttpClient())
 6             {
 7                 client.DefaultRequestHeaders.Add("Accept", "application/json;odata=verbose");//header什么的添加,修改
 8                 var data = await client.GetStringAsync("http://baidu.com");
 9
10                 json(data.ToString());//对得到的数据的处理
11                  12             }
13         }

2:httpRequest 同步 GET

 public static string GetData()
        {

            string URL = "http://baidu.com";
            HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(URL);
            webReq.Method = "get";

            try
            {
                HttpWebResponse response = (HttpWebResponse)webReq.GetResponse();
                Stream myResponseStream = response.GetResponseStream();
                StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
                string retString = myStreamReader.ReadToEnd();
                myStreamReader.Close();
                myResponseStream.Close();
                if (retString != "")
                    return ToUnicode(retString);
                else
                    return "-1";
            }
            catch
            {
                return "-1";
            }
        }

3:同步 Post

 public void PostData(string strText)
    {
        string URL = "baidu.com";
        string strPostdata = "A=213&B=213";  //要post的数据
        Encoding encoding = Encoding.Default;
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);
        request.Method = "post";byte[] buffer = encoding.GetBytes(strPostdata);
        request.ContentLength = buffer.Length;

        request.GetRequestStream().Write(buffer, 0, buffer.Length);
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        StreamReader reader = new StreamReader(response.GetResponseStream(), System.Text.Encoding.GetEncoding("utf-8"));

        reader.readtoend();
    }

4:异步Post wp

var values = new List<KeyValuePair<string, string>>
                    {
                        new KeyValuePair<string, string>("api_key", "12345"),
                        new KeyValuePair<string, string>("game_id", "123456")
                    };

var httpClient = new HttpClient(new HttpClientHandler());
HttpResponseMessage response = await httpClient.PostAsync(url, new FormUrlEncodedContent(values));
response.EnsureSuccessStatusCode();
var responseString = await response.Content.ReadAsStringAsync();

原来的例子都是网上找的,出处记不清了,最后一个例子是在http://stackoverflow.com/questions/16138275/simple-http-post-in-windows-phone-8

接触不久,可能有好多不恰当的地方,如果您发现了,请务必指正,十分感谢。

时间: 2024-10-28 06:14:14

C# HTTP request相关总结的相关文章

request相关研究

一.什么是httpservletrequest 用来处理一个对Servlet的HTTP格式的请求信息. 二.httpservletrequest的作用是什么 优点: 公共接口类HttpServletRequest继承自ServletRequest.客户端浏览器发出的请求被封装成为一个HttpServletRequest对象.对象包含了所有的信息包括请求的地址,请求的参数,提交的数据,上传的文件客户端的ip甚至客户端操作系统都包含在其内. 三.如何获取httpservletrequest 一.在S

Gitlab Merge Request Builder Plugin 配置小记

以前在给一些开源项目贡献代码的时候,在github上一提交pull request或者提交的分支代码更新了的时候,jenkins就会自动把代码进行merge并且运行单元测试,当时看了心里就2个字: NB! 那个时候心里就想,啥时候我也得弄这么一个高大上的玩意儿.随着 gitlab 在工作中的逐渐使用,这个想法越来越强烈.上周末搜来搜去,发现jenkins还真有一款针对gitlab的merge request的插件:Gitlab Merge Request Builder Plugin 当时就心痒

JUnit4.8.2来源分析-2 org.junit.runner.Request

JUnit4.8.2源代码,最为yqj2065兴趣是org.junit.runner.Request,现在是几点意味着它? ①封装JUnit的输入 JUnit4作为信息处理单元,它的输入是单元測试类--布满各种JUnit4的RUNTIME标注的类,但因为使用反射机制,JUnit4的输入严格地说是一个或多个(组)单元測试类的Class对象.早期版本号的JUnit主要处理一个測试或測试构成的树,在增添了对过滤/ filtering和排序/ sorting支持后,JUnit4增加了这个概念.毕竟依照1

JUnit4.8.2源代码分析-2 org.junit.runner.Request和Description

JUnit4.8.2源代码中,最令yqj2065感兴趣的是org.junit.runner.Request,它是几个意思呢? ①封装JUnit的输入 JUnit4作为信息处理单元,它的输入是单元测试类--布满各种JUnit4的RUNTIME标注的类,但由于使用反射机制,JUnit4的输入严格地说是一个或多个(组)单元测试类的Class对象.早期版本的JUnit主要处理一个测试或测试构成的树,在增添了对过滤/ filtering和排序/ sorting支持后,JUnit4加入了这个概念.毕竟按照1

Struts2:request &amp; response

整理自网上:  1.   获取Request和Response的方法  1.1. ServletActionContext的静态方法 1     HttpServletRequest request = ServletActionContext.getRequest();  2     HttpServletResponse response = ServletActionContext.getResponse();  1.2.      ActionContext对象的方法 1 ActionC

在SpringMVC Controller中注入Request成员域

主题 在工作中遇到1个问题....我们定义了一个Controller基类,所有Springmvc自定义的controller都继承它....在它内部定义一个@Autowired HttpServletRequest request;可不可以? 能不能从这个对象里取requestParamters和attributes? 多线程之间会不会影响? 思考 初次思考,我想这应该是不行的.为什么呢? 注入bean是在spring容器启动的时候...request的实现类是在tomcat里(我使用的serv

@Aspect 拦截器相关

执行时机:在HandlerInterceptor @Pointcut("execution(* com.jbs.oms.aggreg.web.controller.*.*.*(..))")private void excudeController() {} @Before("excudeController()")public void before(JoinPoint joinPoint) { //通过joinPoint可以获取request相关参数: Objec

初步学习 W F 工作流

工作流 根据 WfMC 的定义,工作流(WorkFlow)就是自动运作的业务过程部分或整体,表现为参与者对文件.信息或任务按照规程采取行动,并令其在参与者之间传递.官方的总是很抽象,抽象是为了能够体现各种情况,更加严谨可客观.可以这样理解这个工作流,在现实工作中办公室审批文档的流程. 传统方式:李四申报项目,找王二麻子经理审批完成,接着赵六副总签字,又跑到顶层张三董事画押. 而工作流的操作就是将这样一个流程完全的自动化.电子化,省去了李四到处跑这样一个流程. 简单地说,工作流就是一系列相互衔接.

【JavaWeb】Session(转)

以下情况,Session结束生命周期,Servlet容器将Session所占资源释放:1.客户端关闭浏览器2.Session过期3.服务器端调用了HttpSession的invalidate()方法. "一个浏览器就是一个新session,关了浏览器session就结束了"session 是在服务器端建立的,浏览器访问服务器会有一个sessionid,浏览器端通过sessionid定位服务器端的session,session的创建和销毁由服务器端控制.当浏览器关闭后,session还存