使用Unity3D和BestHttp插件,是否有更好的方法将查询字符串附加到请求的URI,然后重构HTTP请求,如下所示?请注意,Unity在单声道3.5的子集上运行。
var str = _request.Uri.OriginalString;
str += "&page_number=0";
_request = new HTTPRequest(new Uri(str));
编辑**
谢谢,
我认为我不够清楚。问题不在于如何创建字符串,而在于如何在未构造完整的HTTP请求并设置其所有回调和其他值的情况下,将页码附加到已构造/配置的请求上。无法访问httpRequest URI的设置访问器。
对于您的编辑:Uri属性是只读的,因为将Cookie,表单数据和其他可能敏感的信息暴露给第三方服务器很容易使您大呼小叫。为避免这种情况,插件将不允许您将相同的请求重用于不同的Uri。
我认为最好的方法是使用UriBuilder类:
UriBuilder builder = new UriBuilder(req.CurrentUri);
builder.Query += "page_number=0";
Debug.Log(builder.Uri);
它将添加第一个“?” char,但是对于Unity中的当前实现,如果多次使用+ =运算符,则会添加多个“?” 字符:
UriBuilder builder = new UriBuilder(req.CurrentUri);
builder.Query += "page_number=0";
builder.Query += "&page_number=2";
builder.Query += "&page_number=4";
Debug.Log(builder.Uri);
这将产生如下输出:
http://httpbin.org/get???page_number=0&page_number=2&page_number=4
因此,您可以克服这些限制,也可以坚持使用原始的字符串方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句