2017-08-01 28 views
0

私はUnity3Dから私のWebサーバーにPOSTリクエストをしようとしています。すべてがエディタで正しく動作しますが、バイナリをビルドして同じものを実行しようとすると、サーバに届いたようには見えません。ユニティへの投稿リクエスト

if(isset($_POST['name']) || isset($_POST['score'])) 
{ 
    $name = $_POST['name']; 
    $score = $_POST['score']; 
    .... 
} 

と団結/ C#で、私はこれを行う:私は、それらを処理するサーバーで

IEnumerator Upload() 
{ 
    WWWForm form = new WWWForm(); 
    form.AddField("name", name.text.Replace("|", " ").ToString()); 
    form.AddField("score", (int)(highScore)); 
    UnityWebRequest www = UnityWebRequest.Post("https://server_name.com/page.php", form); 
    yield return www.Send(); 
} 

が、このエディタで動作するはずですし、しばらく動作しない理由何らかの理由がありますビルドされたバイナリの実行

ありがとうございます!

EDIT:私のバイナリはWindowsとLinux用にビルドされており、どちらも同じエラーがあります。私はWindows上でエディタを実行しています(Windowsバイナリを使用したのと同じマシン) - エディタには何の問題もありません。

+0

PHPから値を返し、Unityでそれを読み込み、エラーがないかどうかを確認してください。同時に、あなたが構築しているプラ​​ットフォームとこれを試してみるといいでしょう。 – Programmer

+0

そうですね、私はこれをLinuxとWindows向けに構築しました。問題は両方にあります。私はWindowsマシン上でエディタを実行しています(そして同じコードがそこから動作します)。 – Zgragselus

+0

私が上記のことをしてください。エディタでそれを実行し、 'UnityWebRequest.downloadHandler.text'でphpから送られた値を受け取るようにしてください。さて、それを構築し、同じ値を受け取ることができるかどうかを確認してください。また、 'UnityWebRequest.error'をチェックしてエラーがあるかどうか確認してください。 – Programmer

答えて

1

私もあなたがドキュメントで説明する方法を、次のされていません...これは、エディタ内で働いているか

を理解していない:

https://docs.unity3d.com/ScriptReference/WWWForm.html

あなたがする必要はありませんUnityWebRequestを使う:WWWとWWWFormだけ。

これを試してみてください:

IEnumerator Upload() { 
    WWWForm form = new WWWForm(); 
    form.AddField("name", name.text.Replace("|", " ").ToString()); 
    form.AddField("score", (int)(highScore)); 

    WWW result = new WWW("https://server_name.com/page.php", form); 

    yield return result; 

    if(!string.IsNullOrEmpty(result.error)) { 
     print("Error : " + result.error); 
    } else { 
     Debug.Log(result.text); 
    } 
} 

編集:私の悪い

[OK]を、あなたの例では、docにあります。私はWWWが進化していることに気づいていませんでした。

ここに私の助言:従来のWWWを使用してください。それは完璧に動作しています。

これは古典的な結束であるため、新しい機能がリリースされていると言うと、壊れています。

関連する問題