HttpWebRequest简单使用
HttpWebRequest简单使用
HttpWebRequest类对WebRequest中定义的属性和方法提供支持,也对使用户能够直接与使用HTTP的服务器交互的附加属性和方法提供支持。
创建HttpWebRequest实例时,使用WebRequest.Create方法。如果统一资源标示符的方案是http://或https://,则Create返回HttpWebRequest对象。
GetResponse方法向RequestUri属性中指定的资源发送同步请求,并返回包含该响应的HttpWebResponse。可以使用BeginGetResponse和EndGetResponse方法对资源发出异步请求.
当想要资源发送数据时,GetRequestStream方法返回用于发送数据的Stream对象。BeginGetRequestStream和EndGetRequestStream方法提供发送数据流的异步访问。
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简单使用的更多相关文章
- .net 爬虫框架技术选型
个人认为爬虫框架分抓取框架和分析框架 1)抓取框架 .net 市面上好的似乎不多,选择要素分两种:1.轻量型,2.重量型. 1. 轻量型是可以定制一些特殊的功能或者插件开关形式.总体性能高,速度快. ...
- WPF桌面程序在请求接口时如何防止被常用的抓包软件Fiddler抓包
问题:在我开发了一个WPF桌面应用程序的时候,由于涉及到登录等等操作通过Fiddler可以很直观的看到账号密码.首先问题有两点:1.数据提交的时候对于密码等重要的数据没有进行加密操作.2.没有防止抓包 ...
- HttpWebRequest post 提交 C#的WebBrowser操作frame如此简单 WebClient 提交
//http://www.cnblogs.com/cgli/archive/2011/04/09/2010497.html System.Net.ServicePointManager.Expect1 ...
- HttpWebRequest的简单使用
新建新的空网站和一个default.aspx页面测试,实验例子: using System; using System.Collections.Generic; using System.IO; us ...
- C#使用HttpWebRequest发送数据和使用HttpWebResponse接收数据的一个简单示例
新建一个.NET Core控制台项目,代码如下所示: using System; using System.Text; using System.Net; using System.Collectio ...
- .NET Web开发技术简单整理
在最初学习一些编程语言.一些编程技术的时候,做的更多的是如何使用该技术,如何更好的使用该技术解决问题,而没有去关注它的相关性.关注它的理论支持,这种学习技术的方式是短平快.其实工作中有时候也是这样,公 ...
- 在使用 HttpWebRequest Post数据时候返回 400错误
笔者有一个项目中用到了上传zip并解压的功能.开始觉得很简单,因为之前曾经做过之类的上传文件的功能,所以并不为意,于是使用copy大法.正如你所料,如果一切很正常的能运行的话就不会有这篇笔记了. 整个 ...
- C#开发微信公众平台-就这么简单(附Demo)
写在前面 阅读目录: 服务号和订阅号 URL配置 创建菜单 查询.删除菜单 接受消息 发送消息(图文.菜单事件响应) 示例Demo下载 后记 最近公司在做微信开发,其实就是接口开发,网上找了很多资料, ...
- Xamarin.Android之封装个简单的网络请求类
一.前言 回忆到上篇 <Xamarin.Android再体验之简单的登录Demo> 做登录时,用的是GET的请求,还用的是同步, 于是现在将其简单的改写,做了个简单的封装,包含基于Http ...
随机推荐
- emwin 之模态窗口
@2019-02-27 [小记] emwin 窗口被模态之后,创建子窗口则原模态窗口变为非模态
- <Android基础> (五) 广播机制
1)接收系统广播:a.动态注册监听网络变化 b.静态注册实现开机启动 2)发送自定义广播:a.发送标准广播 b.发送有序广播 3)使用本地广播 第五章 5.1 广播机制 Android中的每个程序都可 ...
- [模板]Min_25筛
用途 快速($O(\frac{n^{3/4}}{logn})$)地计算一些函数f的前缀和,以及(作为中间结果的)只计算质数的前缀和 一般要求f(p)是积性函数,$f(p)$是多项式的形式,且$f(p^ ...
- git的git bash使用
一.git配置 在你使用git之前,需要先进行配置,即要报名号,否则不能提交代码 $ git config --global user.name # 你是谁 $ git config --global ...
- Vue(项目踩坑)_解决vue中axios请求跨域的问题
一.前言 今天在做项目的时候发现axios不能请求跨域接口 二.主要内容 1.之前直接用get方式请求聚合数据里的接口报错如下 2.当前请求的代码 3.解决方法 (1)在项目目录中依次找到:confi ...
- Hadoop记录-JMX参数
Yarn metrics参数说明 获取Yarn jmx信息:curl -i http://xxx:8088/jmx Hadoop:service=ResourceManager,name=FSOpDu ...
- MySQL安全配置向导mysql_secure_installation详解
安装完mysql-server 会提示可以运行mysql_secure_installation.运行mysql_secure_installation会执行几个设置: a)为root用户设置密码 ...
- 第九节: EF的性能篇(二) 之 Z.EntityFramework.Extensions程序集解决EF的性能问题
一. 综述 该模块主要介绍:EF的性能优化插件Z.EntityFramework.Extensions,该插件收费. (一). 简介 1. 相关网站:http://www.zzzprojects.co ...
- 第一节:从面向对象思想(oo)开发、接口、抽象类以及二者比较
一. 面向对象思想 1. 面向过程(OP)和面向对象(OO)的区别: (1):面向过程就是排着用最简单的代码一步一步写下去,没有封装,当业务复杂的时候,改动就很麻烦了 (2):面向对象将复杂的业务分离 ...
- 【转载】VS中生成、清理项目、调试、开始执行(不调试)、Debug 和 Release等之间的区别
https://blog.csdn.net/u012441545/article/details/51404412