首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UnityWebRequest POST到POST无效

UnityWebRequest POST到POST无效
EN

Stack Overflow用户
提问于 2018-02-05 17:00:06
回答 4查看 8.9K关注 0票数 3

我使用WWWForm:https://docs.unity3d.com/Manual/UnityWebRequest-SendingForm.html的文档

C#:

代码语言:javascript
复制
void Start() {
    StartCoroutine(Upload());
}

IEnumerator Upload(){
    yield return Upload1();
    yield return Upload2();
}

IEnumerator Upload1() {
    List<IMultipartFormSection> formData = new List<IMultipartFormSection>();
    formData.Add( new MultipartFormDataSection("field1=foo&field2=bar") );
    //formData.Add( new MultipartFormFileSection("my file data", "myfile.txt") );

    UnityWebRequest www = UnityWebRequest.Post(url, formData);
    yield return www.SendWebRequest();

    if(www.isNetworkError || www.isHttpError) {
        Debug.Log(www.error);
    }
    else {
        Debug.Log("Form upload complete!");
        Debug.Log( "MULTIPART: " + www.downloadHandler.text );
    }
}

IEnumerator Upload2() {
    WWWForm form = new WWWForm();
    form.AddField("myField", "myData");

    UnityWebRequest www = UnityWebRequest.Post(url, form);
    yield return www.SendWebRequest();

    if(www.isNetworkError || www.isHttpError) {
        Debug.Log(www.error);
    }
    else {
        Debug.Log("Form upload complete!");
        Debug.Log( "WWWForm: " + www.downloadHandler.text );
    }
}

PHP:

代码语言:javascript
复制
<?php 

    echo "POST: ";
    print_r( $_POST );
    var_dump( $_POST );

    echo "GET: ";
    print_r( $_GET );
    var_dump( $_GET );

?>

答复(多部分和WWWForm):

代码语言:javascript
复制
POST: Array
(
)
array(0) {
}
GET: Array
(
)
array(0) {
}

$_POST是空的。(这是我的问题)

使用统一2017.3。

我以前使用过UnityWebRequest.Send (Unity5.6),它一直对我起作用,直到它过时为止。

谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-02-14 05:29:38

这似乎对我有用,我希望它能帮上忙。

代码语言:javascript
复制
UnityWebRequest www = UnityWebRequest.Post(url, formData);

www.chunkedTransfer = false;////ADD THIS LINE

yield return www.SendWebRequest();
票数 7
EN

Stack Overflow用户

发布于 2018-09-15 09:16:49

现在,我正在尝试同样的方法,并且由于WWW类和WWWForm将在下一个版本中被废弃,所以我试图找到一个解决这个问题的解决方案,这个解决方案不使用不推荐的类。最后,我了解到,如果只需要发送带有字符串的表单(例如,我现在使用它作为dropbox中代码流auth的http post ),实际上不需要使用List。只要使用字典就可以了(您甚至不需要使用www.chunkedTransfer = false;)。

代码语言:javascript
复制
Dictionary<string, string> form = new Dictionary<string, string>();
form.Add("code", token);
form.Add("grant_type", "authorization_code");
form.Add("client_id", myid);
form.Add("client_secret", mysecret);
form.Add("redirect_uri", "http://" + localhost + ":" + port + '/');
票数 1
EN

Stack Overflow用户

发布于 2018-02-05 19:28:38

使用WWWForm代替。PHP期待的是应用程序/x-www-表单-用户编码的表单数据,而不是多部分。

代码语言:javascript
复制
WWWForm form = new WWWForm();
form.AddField("myField", "myData");

UnityWebRequest www = UnityWebRequest.Post(url, form);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48627680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档