【发布时间】:2023-10-06 10:27:01
【问题描述】:
我正在使用 Unity3d 并尝试向需要 Date 请求标头的 API 发送 GET 请求。
但是 UnityWebRequest 不会自动发送它(我已经与 https://requestb.in/ 确认过)并且我无法手动设置它,因为“日期”是受保护的标头之一。
UnityWebRequest www = UnityWebRequest.Get (fullURL);
www.SetRequestHeader("Date", dateTimeString);
yield return www.Send();
我收到以下错误:
ArgumentException: 无法设置请求标头日期 - 名称包含非法字符或用户不可覆盖
如果我使用 WWW 类(它允许我手动设置“日期”标头),我能够成功地与 API 通信,但我正在尝试对 UnityWebRequest 做同样的事情,因为 WWW 很快就会被弃用。
我尝试使用 System.Reflection 的“InternalSetRequestHeader”(在https://forum.unity3d.com/threads/unitywebrequest-cookies.383530/#post-2621262 中实现)如下:
System.Reflection.MethodInfo dynMethod = myReq.GetType ().GetMethod ("InternalSetRequestHeader", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
dynMethod.Invoke (myReq, new object[]{"Date", dateTimeString });
然后我收到以下错误:
InvalidOperationException:无法覆盖系统指定的标头
那么,如何确保发送“日期”请求标头?
是否有解决方案或者我必须使用来自不同库的对象,例如 .NET 的 HttpWebRequest?
【问题讨论】:
标签: unity3d http-headers webrequest