当前位置: 移动技术网 > IT编程>开发语言>c# > C#模拟http 发送post或get请求的简单实例

C#模拟http 发送post或get请求的简单实例

2019年07月18日  | 移动技术网IT编程  | 我要评论
private string httppost(string url, string postdatastr) 
    { 
      httpwebrequest request = (httpwebrequest)webrequest.create(url); 
      request.method = "post"; 
      request.contenttype = "application/x-www-form-urlencoded"; 
      request.contentlength = encoding.utf8.getbytecount(postdatastr); 
      request.cookiecontainer = cookie; 
      stream myrequeststream = request.getrequeststream(); 
      streamwriter mystreamwriter = new streamwriter(myrequeststream, encoding.getencoding("gb2312")); 
      mystreamwriter.write(postdatastr); 
      mystreamwriter.close(); 
 
      httpwebresponse response = (httpwebresponse)request.getresponse(); 
 
      response.cookies = cookie.getcookies(response.responseuri); 
      stream myresponsestream = response.getresponsestream(); 
      streamreader mystreamreader = new streamreader(myresponsestream, encoding.getencoding("utf-8")); 
      string retstring = mystreamreader.readtoend(); 
      mystreamreader.close(); 
      myresponsestream.close(); 
 
      return retstring; 
    } 
 
    public string httpget(string url, string postdatastr) 
    { 
      httpwebrequest request = (httpwebrequest)webrequest.create(url + (postdatastr == "" ? "" : "?") + postdatastr); 
      request.method = "get"; 
      request.contenttype = "text/html;charset=utf-8"; 
 
      httpwebresponse response = (httpwebresponse)request.getresponse(); 
      stream myresponsestream = response.getresponsestream(); 
      streamreader mystreamreader = new streamreader(myresponsestream, encoding.getencoding("utf-8")); 
      string retstring = mystreamreader.readtoend(); 
      mystreamreader.close(); 
      myresponsestream.close(); 
 
      return retstring; 
    }

在post的时候有时也用的到cookie,像登录163发邮件时候就需要发送cookie,所以在外部一个cookie属性随时保存 cookiecontainer cookie = new cookiecontainer();

注意:有时候请求会重定向,但我们就需要从重定向url获取东西,像qq登录成功后获取sid,但上面的会自动根据重定向地址跳转。我们可以用:

request.allowautoredirect = false;设置重定向禁用,你就可以从headers的location属性中获取重定向地址

以上这篇c#模拟http 发送post或get请求的简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持移动技术网。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网