HttpWebRequest简单使用

 摘要

HttpWebRequest类对WebRequest中定义的属性和方法提供支持,也对使用户能够直接与使用HTTP的服务器交互的附加属性和方法提供支持。

创建HttpWebRequest实例时,使用WebRequest.Create方法。如果统一资源标示符的方案是http://或https://,则Create返回HttpWebRequest对象。

GetResponse方法向RequestUri属性中指定的资源发送同步请求,并返回包含该响应的HttpWebResponse。可以使用BeginGetResponse和EndGetResponse方法对资源发出异步请求.

当想要资源发送数据时,GetRequestStream方法返回用于发送数据的Stream对象。BeginGetRequestStream和EndGetRequestStream方法提供发送数据流的异步访问。

发送Get请求
 public static void main()
{
//建立请求
HttpWebRequest request=(HttpWebRequest)WebRequest.Create("");
//发送请求获取Http响应
HttpWebRequest response=(HttpWebRequest)request.GetResponse();
//获取响应流
Stream receiveStream =response.GetResponseStream();
StreamReader reader =new StreamReader(receiveStr)
reader.ReadToEnd();
}

发送Post请求

 public static void main()
{
//建立请求
HttpWebRequest request =(HttpWebRequest)WebRequest.Create("");
request.Method="post";
  httpRequest.Headers.Add("Token", "……");
string inputData=Console.ReadLine();
string postData=inputData;
ASCIIEncoding encoding = new ASCIIeNCoding();
byte[] byte1= encoding.GetBytes(postData);
request.ContentType="application/x-www-form-urlencoded";
Stream newstream= request.GetRequestStream();
newStream.Write(byte1,,byte1.Length);
HttpWebResponse HttpWResp = (HttpWebResponse)httpRequest.GetResponse();
Stream responseStream = HttpWResp.GetResponseStream();
StreamReader sr = new StreamReader(responseStream, Encoding.UTF8);
string result = sr.ReadToEnd();
}
  public static string GetShortUrl(string url)
{
string paramstr = "{\"url\":\"" + url + "\"}";
string api = "https://dwz.cn/admin/v2/create";
Stream responseStream = null;
StreamReader sr = null;
Stream requestStream = null;
string result = null;
byte[] data = Encoding.UTF8.GetBytes(paramstr);
try
{
HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(api);
httpRequest.ContentType = "application/json";
httpRequest.Method = "POST";
httpRequest.Headers.Add("Token", "");
//发送数据
httpRequest.ContentLength = data.Length;
requestStream = httpRequest.GetRequestStream();
requestStream.Write(data, , data.Length);
requestStream.Flush();
//获取响应内容
HttpWebResponse HttpWResp = (HttpWebResponse)httpRequest.GetResponse();
responseStream = HttpWResp.GetResponseStream();
sr = new StreamReader(responseStream, Encoding.UTF8);
result = sr.ReadToEnd();
}
catch (Exception e)
{ }
finally
{
if (sr != null)
sr.Close();
if (responseStream != null)
responseStream.Close();
if (requestStream != null)
requestStream.Close();
}
if (!string.IsNullOrEmpty(result))
{
LitJson.JsonData json = LitJson.JsonMapper.ToObject(result);
return json["ShortUrl"].ToString();
}
return url;
}

HttpWebRequest简单使用的更多相关文章

  1. .net 爬虫框架技术选型

    个人认为爬虫框架分抓取框架和分析框架 1)抓取框架 .net 市面上好的似乎不多,选择要素分两种:1.轻量型,2.重量型. 1. 轻量型是可以定制一些特殊的功能或者插件开关形式.总体性能高,速度快. ...

  2. WPF桌面程序在请求接口时如何防止被常用的抓包软件Fiddler抓包

    问题:在我开发了一个WPF桌面应用程序的时候,由于涉及到登录等等操作通过Fiddler可以很直观的看到账号密码.首先问题有两点:1.数据提交的时候对于密码等重要的数据没有进行加密操作.2.没有防止抓包 ...

  3. HttpWebRequest post 提交 C#的WebBrowser操作frame如此简单 WebClient 提交

    //http://www.cnblogs.com/cgli/archive/2011/04/09/2010497.html System.Net.ServicePointManager.Expect1 ...

  4. HttpWebRequest的简单使用

    新建新的空网站和一个default.aspx页面测试,实验例子: using System; using System.Collections.Generic; using System.IO; us ...

  5. C#使用HttpWebRequest发送数据和使用HttpWebResponse接收数据的一个简单示例

    新建一个.NET Core控制台项目,代码如下所示: using System; using System.Text; using System.Net; using System.Collectio ...

  6. .NET Web开发技术简单整理

    在最初学习一些编程语言.一些编程技术的时候,做的更多的是如何使用该技术,如何更好的使用该技术解决问题,而没有去关注它的相关性.关注它的理论支持,这种学习技术的方式是短平快.其实工作中有时候也是这样,公 ...

  7. 在使用 HttpWebRequest Post数据时候返回 400错误

    笔者有一个项目中用到了上传zip并解压的功能.开始觉得很简单,因为之前曾经做过之类的上传文件的功能,所以并不为意,于是使用copy大法.正如你所料,如果一切很正常的能运行的话就不会有这篇笔记了. 整个 ...

  8. C#开发微信公众平台-就这么简单(附Demo)

    写在前面 阅读目录: 服务号和订阅号 URL配置 创建菜单 查询.删除菜单 接受消息 发送消息(图文.菜单事件响应) 示例Demo下载 后记 最近公司在做微信开发,其实就是接口开发,网上找了很多资料, ...

  9. Xamarin.Android之封装个简单的网络请求类

    一.前言 回忆到上篇 <Xamarin.Android再体验之简单的登录Demo> 做登录时,用的是GET的请求,还用的是同步, 于是现在将其简单的改写,做了个简单的封装,包含基于Http ...

随机推荐

  1. 【Spring】Spring bean的实例化

    Spring实现HelloWord 前提: 1.已经在工程中定义了Spring配置文件beans.xml 2.写好了一个测试类HelloWorld,里面有方法getMessage()用于输出" ...

  2. ovs之组网实验

    介绍 本示例将创建两个OVS实例和两个主机,其中每个OVS上接入一个主机,OVS实例之间有链路连接,形成一个链状拓扑,如图.在OVS组网完成之后,再通过手动方式添加流表,实现网络通信,从而验证实验可行 ...

  3. Angular6封装http请求

    最近抽空学习了一下Angular6,之前主要使用的是vue,所以免不了的也想对Angular6提供的工具进行一些封装,今天主要就跟大家讲一下这个http模块. 之前使用的ajax库是axios,可以设 ...

  4. SQL学习指南第三篇

    再谈连接 外连接 之前的范例都是没有考虑条件可能无法为表中的所有行匹配的问题 左外连接与右外连接 SELECT a.account_id, a.cust_id, b.name FROM account ...

  5. Pandas系列(七)-计算工具介绍

    内容目录 1. 统计函数 2. 窗口函数 3. 加深加强 数据准备 # 导入相关库 import numpy as np import pandas as pd #Pandas 中包含了非常丰富的计算 ...

  6. Mybatis-批量执行

    一.使用动态SQL 中的 Foreach 批量插入 1.MySQL // 实体类 public class MyUser { private Integer id; private String na ...

  7. HTML(一)HTML基础语法(HTML简介,HTML文档声明)

    HTML 概念介绍 [概念] (Hyper Text Markup Language)超文本标记语言,是用来描述网页的一种语言 超文本(Hyper Text):不只包括文本,也可以包括图片.链接.音乐 ...

  8. [再寄小读者之数学篇](2014-06-22 积分不等式 [中国科学技术大学2012年高等数学B考研试题])

    函数 $f(x)$ 在 $[0,1]$ 上单调减, 证明: 对于任何 $\al\in (0,1)$, $$\bex \int_0^\al f(x)\rd x\geq \al \int_0^1 f(x) ...

  9. 第29月第14天 evpp

    1.evpp https://github.com/Qihoo360/evpp/tree/master/examples/recipes/self_control_timer https://blog ...

  10. 什么是UDP