您的位置:首页 > 理论基础 > 计算机网络

C# 使用HttpWebRequest Post提交数据,携带Cookie和相关参数示例

2018-04-02 13:16 1396 查看
https://blog.csdn.net/smartsmile2012/article/details/71425629

[csharp] view plain copyusing System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Text;  
using System.Threading.Tasks;  
using System.Configuration;  
using System.Data.SqlClient;  
using System.Data;  
using System.Diagnostics;  
using System.Net;  
using System.IO;  
  
namespace Sample2  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            try  
            {  
                //data  
                string cookieStr = "51fd9f14fa7561b5";  
                string postData = string.Format("userid={0}&password={1}", "guest", "123456");  
                byte[] data = Encoding.UTF8.GetBytes(postData);  
  
                // Prepare web request...  
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.xxx.com");  
                request.Method = "POST";  
                //request.Referer = "https://www.xxx.com";  
                request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";  
                request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36";  
                //request.Host = "www.xxx.com";  
                request.Headers.Add("Cookie", cookieStr);  
                request.ContentLength = data.Length;  
                Stream newStream = request.GetRequestStream();  
  
                // Send the data.  
                newStream.Write(data, 0, data.Length);  
                newStream.Close();  
  
                // Get response  
                HttpWebResponse myResponse = (HttpWebResponse)request.GetResponse();  
                StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);  
                string content = reader.ReadToEnd();  
                Console.WriteLine(content);  
                Console.ReadLine();  
            }  
            catch (Exception)  
            {  
                throw;  
            }  
        }  
    }  
}  
[csharp] view plain copy/// <summary>  
/// 调用短信接口发送短信,需配合模板  
/// </summary>  
/// <param name="userName">接口用户名</param>  
/// <param name="userPwd">接口密码</param>  
/// <param name="mobile">发送手机号码</param>  
/// <param name="content">发送内容</param>  
/// <returns> 返回值大于0,发送成功,系统生成的任务id或自定义的任务id</returns>  
public static string PostSms(string userName, string userPwd, string mobile, string content)  
{  
    string srcString = "-999";  
    try  
    {  
        string postString = string.Format("username={0}&password={1}&mobile={2}&content={3}", userName, MD5(userName + MD5(userPwd)), mobile, content);  
        byte[] postData = Encoding.UTF8.GetBytes(postString);//编码,尤其是汉字,事先要看下抓取网页的编码方式    
        string url = "http://xxx/smsSend.do";//地址    
        WebClient webClient = new WebClient();  
        webClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");//采取POST方式必须加的header,如果改为GET方式的话就去掉这句话即可    
        byte[] responseData = webClient.UploadData(url, "POST", postData);//得到返回字符流    
        srcString = Encoding.UTF8.GetString(responseData);//解码  
    }  
    catch { }  
    return srcString;  
}  
[csharp] view plain copyclass Program  
{  
    static void Main(string[] args)  
    {  
        var str = DownloadStringAsync(new Uri("http://www.baidu.com"));  
        Console.WriteLine(str.Result);  
        Console.ReadLine();  
    }  
  
    static async Task<string> DownloadStringAsync(Uri uri)  
    {  
        //WebClient 不支持超时设定  
        //而HttpWebRequst则允许你设置请求头或者对内容需要更多的控制  
        var webClient = new WebClient();  
        webClient.Encoding = System.Text.Encoding.UTF8;  
        var result = await webClient.DownloadStringTaskAsync(uri);  
        return result;  
    }  
}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐