Unity通过HTTP中POST/GET访问网络数据

using System;

using UnityEngine;

using System.Collections.Generic;

using System.IO;

using System.Net;

using System.Text;

public static  class HttpPostAndGet {

    /// <summary>

    /// 后台发送POST请求

    /// </summary>

    /// <param name="url">服务器地址</param>

    /// <param name="data">发送的数据</param>

    /// <returns></returns>

    public static string HttpPost(string url, string data, string headermessage="")

    {


            //创建post请求

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

            request.Method = "POST";

            request.ContentType = "application/x-www-form-urlencoded";

            AddMessage(headermessage, request);

            byte[] payload = Encoding.UTF8.GetBytes(data);

            request.ContentLength = payload.Length;

            //发送post的请求

            Stream writer = request.GetRequestStream();

            writer.Write(payload, 0, payload.Length);

            writer.Close();

        try

        {

            //接受返回来的数据

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();

            Stream stream = response.GetResponseStream();

            StreamReader reader = new StreamReader(stream, Encoding.UTF8);

            string value = reader.ReadToEnd();

            reader.Close();

            stream.Close();

            response.Close();

            return value;

        }

        catch (WebException e)

        {

            WebResponse wr = e.Response;

            using (StreamReader reader = new StreamReader(wr.GetResponseStream(), System.Text.Encoding.UTF8))

            {

                string value = reader.ReadToEnd();

                return "H" + value;

            }

        }

    }

    private static void AddMessage(string headermessage, HttpWebRequest request)

    {

        if (headermessage != "")

        {

            if (headermessage.Contains("&"))

            {

                string[] headermessagecell = headermessage.Split('&');

                foreach (var item in headermessagecell)

                {

                    string[] itemkeyandvalue = item.Split('=');

                    request.Headers.Add(itemkeyandvalue[0], itemkeyandvalue[1]);

                }

            }

            else

            {

                string[] itemkeyandvalue = headermessage.Split('=');

                request.Headers.Add(itemkeyandvalue[0], itemkeyandvalue[1]);

            }

        }

    }

    /// <summary>

    /// 后台发送POST请求

    /// </summary>

    /// <param name="url">服务器地址</param>

    /// <param name="data">发送的数据</param>

    /// <returns></returns>

    public static string HttpFormPost(string url, string data, string headermessage = "",string token="")

    {

        byte[] postData = Encoding.UTF8.GetBytes(headermessage);

        WebClient webClient = new WebClient();

        webClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");

        if (token!="")

        {

            try

            {

                webClient.Headers.Add("token", token);

                string responseData = webClient.UploadString(url, "POST", headermessage);

                return responseData;

            }

            catch (Exception e)

            {

                Debug.Log(e.Message);

                return "";

            }


        }

        else

        {

            try

            {

                byte[] responseData = webClient.UploadData(url, "POST", postData);

                return Encoding.UTF8.GetString(responseData);

            }

            catch (Exception e)

            {

                Debug.Log(e.Message);

                return "";

            }

        }     

    }



      /// <summary>

      /// 后台发送GET请求

      /// </summary>

      /// <param name="url">服务器地址</param>

      /// <param name="data">发送的数据</param>

      /// <returns></returns>

    public static string HttpGet(string url, string data)

    {

        try

        {

            //创建Get请求

            url = url + (data == "" ? "" : "?") + data;

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

            request.Method = "GET";

            request.ContentType = "text/html;charset=UTF-8";

            //接受返回来的数据

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();

            Stream stream = response.GetResponseStream();

            StreamReader streamReader = new StreamReader(stream, Encoding.GetEncoding("utf-8"));

            string retString = streamReader.ReadToEnd();

            streamReader.Close();

            stream.Close();

            response.Close();

            return retString;

        }

        catch (Exception)

        {

            return "";

        }

    }

}

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,561评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,218评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,162评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,470评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,550评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,806评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,951评论 3 407
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,712评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,166评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,510评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,643评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,306评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,930评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,745评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,983评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,351评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,509评论 2 348

推荐阅读更多精彩内容