Unity www.progress始终返回0

mingchaoyan

Unity 5.3.4p1 Mac OS X 10.11.5

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System.Text;

public class TestWWW : MonoBehaviour {

    // Use this for initialization
    void Start () {
        Dictionary<string, string> headers = new Dictionary<string, string>();
        headers["Api-key"] = "sorry-i-cant-post-this";
        headers["Content-Type"] = "application/json";
        string url =  "http://sorry-i-cant-post-this";
        var req = string.Format(
            "{{\"major\":{0},\"minor\":{1},\"patch\":{2},\"release\":{3},\"notice\":{4}}}",
            0, 0, 0, 40, 0
        );
        byte[] postData = Encoding.UTF8.GetBytes(req);

        var www = new WWW(url, postData, headers);
        StartCoroutine(F(www));
    }

    IEnumerator F(WWW www) {
        while(!www.isDone) {
            Debug.Log(www.progress);
            yield return null;
        }
        if(www.error == null)
            Debug.Log("Done");
        else 
            Debug.Log(www.error);

    }

    // Update is called once per frame
    void Update () {

    }
}

该代码始终显示0,因为F(WWW www)函数的while循环无法完成。

我使用Charles进行监视,发现“响应代码是405方法不允许”。

而请求是

POST /api/client/v2 HTTP/1.1 User-Agent: UnityPlayer/5.3.4p1 (http://unity3d.com) Host: http://sorry-i-cant-post-this Accept: */* Accept-Encoding: identity Api-key: sorry-i-cant-post-this Content-Length: 55 Content-Type: application/json X-Unity-Version:
5.3.4p1

{"major":0,"minor":0,"patch":0,"release":40,"notice":0}

有什么不对的吗?

还是仅仅是Unity错误?

谢谢!!!

最后,我发现这是因为我打开了ShadowSocks。

程序员

当服务器不返回内容长度标头时,就会发生这种情况在服务器代码中,应添加标头,Content-Length:后跟要发送给客户端的数据大小。

如果那不能解决问题,请使用UnityWebRequestAPI。在您的问题中移植了要使用的代码,UnityWebRequest而不是使用WWW

// Use this for initialization
void Start()
{

    string url = "http://sorry-i-cant-post-this";
    var req = string.Format(
        "{{\"major\":{0},\"minor\":{1},\"patch\":{2},\"release\":{3},\"notice\":{4}}}",
        0, 0, 0, 40, 0
    );

    UnityEngine.Networking.UnityWebRequest www = UnityEngine.Networking.UnityWebRequest.Post(url, req);
    www.SetRequestHeader("Api-key", "sorry-i-cant-post-this");
    www.SetRequestHeader("Content-Type", "application/json");

    StartCoroutine(F(www));
}

IEnumerator F(UnityEngine.Networking.UnityWebRequest www)
{
    www.downloadHandler = new UnityEngine.Networking.DownloadHandlerBuffer();
    www.Send();

    while (!www.isDone)
    {
        Debug.Log(www.downloadProgress);
        yield return null;
    }

    if (www.isError)
    {
        Debug.Log(www.error);
    }
    else
    {
        Debug.Log("Done");
        Debug.Log("Downloaded: " + www.downloadHandler.text);

        // Or retrieve results as binary data
        byte[] results = www.downloadHandler.data;
    }

}

// Update is called once per frame
void Update()
{

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将引用(以及Unity的WWW.progress)传递给协同程序/ IEnumerator

来自分类Dev

www.text在Unity3D(C#)中返回奇怪的值

来自分类Dev

Unity Raycast始终返回true

来自分类Dev

Unity下载问题WWW和UnityWebRequest

来自分类Dev

iOS 9.1上的Unity WWW超时错误

来自分类Dev

Unity 在场景异步加载 www 图像

来自分类Dev

Unity 5 C#登录系统-www.data返回1,但是它继续前进吗?

来自分类Dev

Unity尝试使用Color.RBGtoHSV从get Pixel获取色相,但H始终返回0

来自分类Dev

Unity Facebook SDK登录始终返回用户0访问令牌abc ... z

来自分类Dev

Unity3d WWW和网络连接错误

来自分类Dev

如何始终在grailsUrl中设置“ www”?

来自分类Dev

php to URL(https://www.reliancesmart.in/) 中 curl 请求的状态码始终为 0

来自分类Dev

Unity 5中使用StartCoroutine的命令执行顺序/ yield return www

来自分类Dev

在Unity支持的所有平台上都可以使用WWW吗?

来自分类Dev

如何从TTY返回Unity

来自分类Dev

如何从TTY返回Unity

来自分类Dev

GetMousePosition始终返回0

来自分类Dev

Difftime始终返回0

来自分类Dev

DataTable始终返回0

来自分类Dev

getSingleEntry始终返回0

来自分类Dev

DocumentRoot始终默认为/ var / www / html,无法更改

来自分类Dev

从json文件浮起并在Unity中返回0

来自分类Dev

在带有Unity和Oculus SDK的Oculus Quest中耳机位置始终返回零

来自分类Dev

为什么“ www” .count(“ ww”)返回1而不返回2?

来自分类Dev

WWW.LoadFromCacheOrDownload不能在Android手机上使用Unity的增强现实应用程序中工作

来自分类Dev

如何让Unity WebApp始终在Chromium中运行?

来自分类Dev

Unity Touch位置差异始终为正

来自分类Dev

如何让Unity WebApp始终在Chromium中运行?

来自分类Dev

当我访问不带www的URL时,nginx返回404

Related 相关文章

  1. 1

    将引用(以及Unity的WWW.progress)传递给协同程序/ IEnumerator

  2. 2

    www.text在Unity3D(C#)中返回奇怪的值

  3. 3

    Unity Raycast始终返回true

  4. 4

    Unity下载问题WWW和UnityWebRequest

  5. 5

    iOS 9.1上的Unity WWW超时错误

  6. 6

    Unity 在场景异步加载 www 图像

  7. 7

    Unity 5 C#登录系统-www.data返回1,但是它继续前进吗?

  8. 8

    Unity尝试使用Color.RBGtoHSV从get Pixel获取色相,但H始终返回0

  9. 9

    Unity Facebook SDK登录始终返回用户0访问令牌abc ... z

  10. 10

    Unity3d WWW和网络连接错误

  11. 11

    如何始终在grailsUrl中设置“ www”?

  12. 12

    php to URL(https://www.reliancesmart.in/) 中 curl 请求的状态码始终为 0

  13. 13

    Unity 5中使用StartCoroutine的命令执行顺序/ yield return www

  14. 14

    在Unity支持的所有平台上都可以使用WWW吗?

  15. 15

    如何从TTY返回Unity

  16. 16

    如何从TTY返回Unity

  17. 17

    GetMousePosition始终返回0

  18. 18

    Difftime始终返回0

  19. 19

    DataTable始终返回0

  20. 20

    getSingleEntry始终返回0

  21. 21

    DocumentRoot始终默认为/ var / www / html,无法更改

  22. 22

    从json文件浮起并在Unity中返回0

  23. 23

    在带有Unity和Oculus SDK的Oculus Quest中耳机位置始终返回零

  24. 24

    为什么“ www” .count(“ ww”)返回1而不返回2?

  25. 25

    WWW.LoadFromCacheOrDownload不能在Android手机上使用Unity的增强现实应用程序中工作

  26. 26

    如何让Unity WebApp始终在Chromium中运行?

  27. 27

    Unity Touch位置差异始终为正

  28. 28

    如何让Unity WebApp始终在Chromium中运行?

  29. 29

    当我访问不带www的URL时,nginx返回404

热门标签

归档