zoukankan      html  css  js  c++  java
  • C# Http

    C# Http

    Json,C#可用LitJson

    C# LitJson文档网站
    http://lbv.github.io/litjson/docs/quickstart.html

    参考网站:
    http://www.json.org/
    http://lbv.github.io/litjson/


    一,Http请求 Request:
    Method空格Request-URI"空格"HTTP-Version"回车"
    Method表示对于Request-URI完成的方法,这个字段是大小写敏感的,包括OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE。方法GET和HEAD应该被所有的通用WEB服务器支持,其他所有方法的实现是可选的。GET方法取回由Request-URI标识的信息。HEAD方法也是取回由Request-URI标识的信息,只是可以在响应时,不返回消息体。POST方法可以请求服务器接收包含在请求中的实体信息,可以用于提交表单,向新闻组、BBS、邮件群组和数据库发送消息。
    Request-URI遵循URI格式,在此字段为星号(*)时,说明请求并不用于某个特定的资源地址,而是用于服务器本身。HTTP-Version表示支持的HTTP版本,例如为HTTP/1.1。
    请求头域允许客户端向服务器传递关于请求或者关于客户机的附加信 http架构息。请求头域可能包含下列字段Accept、Accept-Charset、Accept-Encoding、Accept-Language、Authorization、From、Host、If-Modified-Since、If-Match、If-None-Match、If-Range、If-Range、If-unmodified-Since、Max-Forwards、Proxy-Authorization、Range、Referer、User-Agent。对请求头域的扩展要求通讯双方都支持,如果存在不支持的请求头域,一般将会作为实体头域处理。


    1,请求正文字符串:
    方法1:
    StringBuilder sb = new StringBuilder();
    JsonWriter writer = new JsonWriter(sb);

    writer.WriteObjectStart();

    writer.WritePropertyName("username");
    writer.Write(userName);

    writer.WritePropertyName("password");
    writer.Write(passWord);


    writer.WriteObjectEnd();
    return sb.ToString();
    方法2:
    public class UserHKID{
    public string NickName {get;set;}
    public string UserName {get;set;}
    public string Password {get;set;}

    public UserHKID(string username,string nickname,string password){
    NickName=nickname;
    UserName=username;
    Password=password;
    }
    }
    return JsonMapper.ToJson(userHKIG);

    2,请求消息:
    IEnumerator ClientSend(string str , string rul) {
    //请求行 设置方法 URL
    request = new HTTP.Request("POST", rul);
    // 请求头
    request.SetHeader("Content-Type", "application/json");
    //消息体
    request.Text = str;
    request.Send();
    // 是否缓存,false为不缓存
    request.useCache = false;
    while (!request.isDone) yield return new WaitForEndOfFrame();
    //while (!request.isDone) yield return new WaitForEndOfFrame();
    if (request.exception != null)
    {
    // Debug.LogError(request.exception);
    }
    else
    {
    var response = request.response;
    Debug.Log(""+response.Text);
    UserloginJson(response.Text)
    }
    }

    一,Http响应 Response:
    Response response=request.response;
    response.Text 为响应数据;进行Json解析;程序处理
    列文:
    void UserloginJson(string str)
    {
    JsonData jdata2= JsonMapper.ToObject(str);
    //类封装
    UserLoginData userLoginData= JsonMapper.ToObject<UserLoginData>(jdata2.ToJson());
    // 一一转换
    level = (int)jdata2["level"];
    exp = (int)jdata2["exp"];
    coins = (int)jdata2["coins"];
    life = (int)jdata2["life"];

    }

    public class UserLoginData{
    public string userid {get;set;}
    public string username {get;set;}
    public string usernickname {get;set;}
    public string password {get;set;}
    public int level{get;set;}
    public int exp{get;set;}
    public int coins{get;set;}
    public int life{get;set;}
    }

  • 相关阅读:
    计算与软件工程 作业一
    C语言程序设计数组实验实验报告
    C语言程序设计第五次实验报告
    C语言程序设计第四次实验报告
    C语言程序设计第三次实验报告
    C程序设计实验报告第二次实验
    关于证书如何完成身份验证(SSL证书)
    openflow流表项中有关ip掩码的匹配的问题(控制器为ryu)
    解决sublime安装插件被墙失败的方法
    区块链技术与应用(二)之比特币中的数据结构
  • 原文地址:https://www.cnblogs.com/kuangwu/p/3275584.html
Copyright © 2011-2022 走看看