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;}
    }

  • 相关阅读:
    bootstrap2文档的学习
    在mininet上基于ovs,ovx,pox搭建三点虚拟网络
    借鉴一些关于js框架的东西
    setTimeout js
    Ubuntu 上配置静态的ip
    html5 canvas
    获取当前页面的长宽
    ovs的卸载
    tensorflow实现Word2vec
    梯度下降做做优化(batch gd、sgd、adagrad )
  • 原文地址:https://www.cnblogs.com/kuangwu/p/3275584.html
Copyright © 2011-2022 走看看