您的位置:首页 > 教育 > 锐评 > 软件仓库_网站收录突然全部没有了_100个关键词_个人博客网页制作

软件仓库_网站收录突然全部没有了_100个关键词_个人博客网页制作

2024/12/28 1:38:33 来源:https://blog.csdn.net/qq_48512649/article/details/144713325  浏览:    关键词:软件仓库_网站收录突然全部没有了_100个关键词_个人博客网页制作
软件仓库_网站收录突然全部没有了_100个关键词_个人博客网页制作

应用场景:一个游戏可能会衍生出其他APP或小程序之类的软件,例如王者营地是王者荣耀的官方APP,王者营地提供资讯、赛事、社区、战绩等功能。所以游戏端会和衍生出来的软件端做一些数据互通。这里把软件端称为中台系统。

Get请求和Post请求的区别

特性GET 请求POST 请求
参数传递方式URL 查询字符串请求体
安全性较低(参数暴露在 URL 中)较高(参数在请求体中)
幂等性是(多次请求结果相同)否(多次请求可能产生不同结果)
缓存支持不支持
使用场景查询数据提交数据、执行操作
请求体不允许允许
URL 长度限制
浏览器行为可直接输入 URL,可收藏、分享通常通过表单提交或 AJAX 发起
服务器处理只读取参数,不修改资源状态根据请求体修改资源状态

举例我在王者营地签到会有奖励,获得后需要在游戏内获取,这就需要游戏后端请求中台系统获得了什么奖励。分别用Get请求和Post请求实现。(实际上这个需求是Get请求,我们不修改中台系统的资源只获取数据)

Get请求实现

 Get请求参数是暴露在URL中的,根据中台系统接口定义返回值类型

public class GetSignInAwardResponse
{public int code;public string msg;public Dictionary<string,Dictionary<int,long>> data;
}

 发送Get请求获取奖励数据

public static async ETTask<Dictionary<int,long>> GetSignInAward(long unitId,string telephone)
{Dictionary<int,long> getAward = new Dictionary<int,long>();//最基础不包含参数的URLstring baseUrl = GetUrl();  //拼接玩家ID和手机号,中台系统用来验证玩家身份从而确定哪些奖励string url = $"{baseUrl}?telephone={telephone}&uid={unitId}";  HttpClient client = new HttpClient();//发送Get请求HttpResponseMessage responseMessage = await client.GetAsync(url);responseMessage.EnsureSuccessStatusCode();//获取返回值string resultText = await responseMessage.Content.ReadAsStringAsync();//Log.Warning(resultText);//序列化返回值GetSignInAwardResponse result = JsonHelper.FromJson<GetSignInAwardResponse>(resultText);if (result.code != ErrorCode.ERR_Success){return null;}getAward = result.data["signInAward"];return getAward;
}

Post请求实现 

Post请求参数在请求体中,我们除了定义返回值还需要定义请求体。

public class GetSignInAwardRequest
{public string telephone;public string uid;
}public class GetSignInAwardResponse
{public int code;public string msg;public Dictionary<string,Dictionary<int,long>> data;
}

发送请求获取返回值

public static async ETTask<GetSignInAwardResponse> GetSignInAward(long unitId,string telephone)
{string url = GetUrl(); //最基础不带参数的URL//给请求体参数赋值GetSignInAwardRequest requestData = new GetSignInAwardRequest();requestData.uid = unitId.ToString();requestData.telephone = telephone;HttpClient client = new HttpClient();//序列化请求参数var data = new StringContent(requestData.ToJson(), Encoding.UTF8, "application/json");//发送Post请求和参数HttpResponseMessage responseMessage = await client.PostAsync(url, data);responseMessage.EnsureSuccessStatusCode();string resultText = await responseMessage.Content.ReadAsStringAsync();return JsonHelper.FromJson<GetSignInAwardResponse>(resultText);
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com