WEB技术论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
热搜: ASP asp.net php
查看: 98|回复: 0
打印 上一主题 下一主题

HttpUtils SendRequest类方法post ,get

[复制链接]

534

主题

541

帖子

2044

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2044
跳转到指定楼层
楼主
发表于 2018-8-7 22:13:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

{
    using System;
    using System.IO;
    using System.Net;
    using System.Text;
    using System.Web;

    public class HttpUtils
    {
        public static string encodingName = "gb2312";

        public static string SendRequest(string string_0, string para)
        {
            return SendRequest(string_0, para, "GET");
        }

        public static string SendRequest(string string_0, string para, string method)
        {
            Exception exception;
            string str = "";
            if ((string_0 == null) || (string_0 == ""))
            {
                return null;
            }
            if ((method == null) || (method == ""))
            {
                method = "GET";
            }
            if (method.ToUpper() == "GET")
            {
                try
                {
                    HttpWebRequest request2 = (HttpWebRequest) WebRequest.Create(string_0 + para);
                    request2.AllowAutoRedirect = false;
                    HttpWebResponse response = (HttpWebResponse) request2.GetResponse();
                    if (response.StatusCode == HttpStatusCode.Found)
                    {
                        string_0 = response.Headers["Location"];
                        if (string_0.IndexOf("?") < 0)
                        {
                            para = "&" + para.Substring(1, para.Length - 1);
                        }
                        request2 = (HttpWebRequest) WebRequest.Create(string_0 + para);
                    }
                    str = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(encodingName)).ReadToEnd();
                }
                catch (Exception exception1)
                {
                    exception = exception1;
                    return exception.Message;
                }
            }
            if (method.ToUpper() == "POST")
            {
                if ((para.Length > 0) && (para.IndexOf('?') == 0))
                {
                    para = para.Substring(1);
                }
                WebRequest request = WebRequest.Create(string_0);
                request.Method = "POST";
                request.ContentType = "application/x-www-form-urlencoded";
                StringBuilder builder = new StringBuilder();
                char[] anyOf = new char[] { '?', '=', '&' };
                byte[] bytes = null;
                if (para == null)
                {
                    request.ContentLength = 0L;
                }
                else
                {
                    int num3;
                    for (int i = 0; i < para.Length; i = num3 + 1)
                    {
                        num3 = para.IndexOfAny(anyOf, i);
                        if (num3 == -1)
                        {
                            builder.Append(HttpUtility.UrlEncode(para.Substring(i, para.Length - i), Encoding.GetEncoding(encodingName)));
                            break;
                        }
                        builder.Append(HttpUtility.UrlEncode(para.Substring(i, num3 - i), Encoding.GetEncoding(encodingName)));
                        builder.Append(para.Substring(num3, 1));
                    }
                    bytes = Encoding.Default.GetBytes(builder.ToString());
                    request.ContentLength = bytes.Length;
                    Stream requestStream = request.GetRequestStream();
                    requestStream.Write(bytes, 0, bytes.Length);
                    requestStream.Close();
                }
                try
                {
                    Stream responseStream = request.GetResponse().GetResponseStream();
                    byte[] buffer = new byte[0x200];
                    for (int j = responseStream.Read(buffer, 0, 0x200); j > 0; j = responseStream.Read(buffer, 0, 0x200))
                    {
                        Encoding encoding = Encoding.GetEncoding(encodingName);
                        str = str + encoding.GetString(buffer, 0, j);
                    }
                    return str;
                }
                catch (Exception exception2)
                {
                    exception = exception2;
                    return exception.Message;
                }
            }
            return str;
        }
    }
}

爱仿站的中年人
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

|手机版|码农集营 ( ) 深圳龙岗交友群

GMT+8, 2018-11-7 18:27 , Processed in 0.087087 second(s), 22 queries .

Powered by 码农集营 X3.4

快速回复 返回顶部 返回列表