【问题标题】:How to write HTTP post request in Unity by using UnityWebRequest? [duplicate]如何使用 UnityWebRequest 在 Unity 中编写 HTTP 发布请求? [复制]
【发布时间】:2019-01-26 08:21:34
【问题描述】:

Mthod: Post Link: www.link.com Headers: 1: appKey="ABC" 2: Content-Type="text/csv" 如何编写 C# 脚本通过 post 发送数据?

【问题讨论】:

  • 我浏览了链接,我也尝试了一些例子。他们指定 form.add 方法用于上传标题,但它不起作用。我需要使用 UnityWebRequest 发布请求。

标签: unity3d


【解决方案1】:

你可以这样做:

void Start()
{
    StartCoroutine(PostCrt());
}

IEnumerator PostCrt()
{
    WWWForm form = new WWWForm();
    form.AddField("appKey", "ABC");
    form.AddField("Content-Type", "text/csv");

    using (UnityWebRequest www = UnityWebRequest.Post("www.link.com", form))
    {
        yield return www.SendWebRequest();

        if (www.isNetworkError || www.isHttpError)
        {
            Debug.Log(www.error);
        }
        else
        {
            Debug.Log("Post Request Complete!");
        }
    }
}

不要忘记调用“使用 UnityEngine.Networking;”能够使用 UnityWebRequest。

编码愉快!

【讨论】:

  • 我收到无法连接到目标主机的错误。该链接是服务器 api 链接。当我将它粘贴到浏览器上时它可以工作,但听到它给我上面的错误。
  • 你可以给我看你放在那里的完整网址吗?
  • 这个请求到底是做什么的?我认为缺少授权标头存在问题。
  • 我添加了 appKey 和 content-type, accept headers 。这些标头足以获得响应。我通过邮递员测试了它。我没有得到缺少的东西。
  • 奇怪,我不认为问题出在请求上,但我认为 url 重定向存在问题。对不起,我帮不了你。
【解决方案2】:
public void Request()
{
    try
    {
        string url = "www.link.com";

        var request = UnityWebRequest.Post(url, "");
        request.SetRequestHeader("Content-Type", "application/json");
        request.SetRequestHeader("Accept", "text/csv");
        request.SetRequestHeader("appKey", "ABC");
        StartCoroutine(onResponse(request));
    }
    catch (Exception e) { Debug.Log("ERROR : " + e.Message); }
}
private IEnumerator onResponse(UnityWebRequest req)
{

    yield return req.SendWebRequest();
    if (req.isError)
      Debug.Log("Network error has occured: " + req.GetResponseHeader(""));
    else
        Debug.Log("Success "+req.downloadHandler.text );
        byte[] results = req.downloadHandler.data;
    Debug.Log("Second Success");
    // Some code after success

}

这段代码对我有用...

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-10
  • 2015-08-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多