UnityのWWWクラスが間違っていたことはわかりませんでしたが、System.Net.WebClientクラスを使用して問題を回避できました。 UnityのWWWクラスと似たインターフェイスを持つ単純なラッパーを実装しました。私が使用したコードは次のとおりです。
using System;
using System.Net;
using System.Net.Security;
using System.Text;
/// <summary>
/// Web request using the WebClient class.
/// </summary>
/// <seealso cref="Assets.Scripts.WebRequest" />
internal class WebRequest
{
/// <summary>
/// The web client.
/// </summary>
private WebClient _client;
/// <summary>
/// The error message.
/// </summary>
private string _error;
/// <summary>
/// The is done flag.
/// </summary>
private bool _isDone;
/// <summary>
/// The progress.
/// </summary>
private float _progress;
/// <summary>
/// The text.
/// </summary>
private string _text;
/// <summary>
/// Initializes a new instance of the <see cref="WebRequest"/> class.
/// </summary>
/// <param name="url">The URL.</param>
public WebRequest(string url)
{
this._client = new System.Net.WebClient();
this._client.DownloadProgressChanged += this.WebClientProgressChanged;
this._client.DownloadStringCompleted += this.WebClientDownloadCompleted;
this._client.DownloadStringAsync(new Uri(url));
}
/// <summary>
/// Initializes a new instance of the <see cref="WebRequestDotNet"/> class.
/// </summary>
/// <param name="url">The URL.</param>
/// <param name="form">The form.</param>
public WebRequest(string url, UnityEngine.WWWForm form)
{
this._client = new System.Net.WebClient();
this._client.UploadProgressChanged += this.WebClientUploadProgressChanged;
this._client.UploadDataCompleted += this.WebClientUploadCompleted;
this._client.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
// Try to get the header from the Unity form
foreach (var header in form.headers)
{
const string ContentType = "Content-Type";
if (header.Key == ContentType)
{
string contentType = header.Value;
this._client.Headers.Remove(ContentType);
this._client.Headers[ContentType] = contentType;
}
}
this._client.UploadDataAsync(new Uri(url), form.data);
}
/// <summary>
/// Gets the error message. Returns null if there is no error.
/// </summary>
/// <value>
/// The error message.
/// </value>
public string Error
{
get
{
return this._error;
}
}
/// <summary>
/// Gets a value indicating whether this request is done.
/// </summary>
/// <value>
/// <c>true</c> if this instance is done; otherwise, <c>false</c>.
/// </value>
public bool IsDone
{
get
{
return this._isDone;
}
}
/// <summary>
/// Gets the progress, 0 to 1.
/// </summary>
/// <value>
/// The progress.
/// </value>
public float Progress
{
get
{
return this._progress/100.0f;
}
}
/// <summary>
/// Gets the resulting text.
/// </summary>
/// <value>
/// The text.
/// </value>
public string Text
{
get
{
return this._text;
}
}
/// <summary>
/// Called when the download is complete.
/// </summary>
/// <param name="sender">The sender.</param>
/// <param name="e">The <see cref="DownloadStringCompletedEventArgs"/> instance containing the event data.</param>
private void WebClientDownloadCompleted(object sender, DownloadStringCompletedEventArgs e)
{
if (e.Error != null)
{
this._error = e.Error.ToString();
}
else
{
this._text = e.Result;
}
this._isDone = true;
}
/// <summary>
/// Called when the progress changes.
/// </summary>
/// <param name="sender">The sender.</param>
/// <param name="e">The <see cref="DownloadProgressChangedEventArgs"/> instance containing the event data.</param>
private void WebClientProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
this._progress += e.ProgressPercentage;
}
/// <summary>
/// Called when the upload is complete.
/// </summary>
/// <param name="sender">The sender.</param>
/// <param name="e">The <see cref="UploadValuesCompletedEventArgs"/> instance containing the event data.</param>
private void WebClientUploadCompleted(object sender, UploadDataCompletedEventArgs e)
{
if (e.Error != null)
{
this._error = e.Error.ToString();
}
else
{
this._text = Encoding.UTF8.GetString(e.Result);
}
this._isDone = true;
}
/// <summary>
/// Called when the upload progress changes.
/// </summary>
/// <param name="sender">The sender.</param>
/// <param name="e">The <see cref="UploadProgressChangedEventArgs"/> instance containing the event data.</param>
private void WebClientUploadProgressChanged(object sender, UploadProgressChangedEventArgs e)
{
this._progress += e.ProgressPercentage;
}
}
どのプラグインを使用しますか? xcodeでどのようなフレームワークを追加しますか?ネットワーキングタスクは何ですか?シンプルなjsonのクエリやソケットまたは何ですか?サポートを受ける機会を増やし、私たちがあなたを助けてくれるようにしてください。 – DeyaEldeen
唯一のプラグインはUnity IAPであり、Xcode経由で追加されたフレームワークはありません(Xcodeを全く使用していません)。ネットワーク私はParseに接続しようとしていますが、WWW呼び出しでサイトをテストしましたが、何も通過していません。 – AlexTheMighty
@AlexTheMighty Unity 5.3.4p1を使用して同じ問題が発生しています。あなたは解決策を見つけましたか? –