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

转载于:https://www.cnblogs.com/kuangwu/p/3275584.html

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐