Создание запроса на публикацию в Unity на Windows Phone 8C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Создание запроса на публикацию в Unity на Windows Phone 8

Сообщение Anonymous »

Я пытаюсь отправить запрос на публикацию на Windows Phone 8 с платформы Unity. Я не хочу использовать метод Unity WWW, поскольку он блокирует рендеринг (и не является потокобезопасным).

Следующий код работает в редакторе и на Android, но когда создав его для WP8, я получаю следующую ошибку.


System.Byte[] System.Net.WebClient::UploadData(System.String,System.String,System.Byte[]) ` не существует в целевой платформе.


Причина этой ошибки объясняется здесь


Это потому, что Windows Phone 8 использует другой вариант .NET, называемый .NET для Windows Phone, в котором отсутствуют некоторые типы, доступные на других платформах. Вам придется либо заменить эти типы другими, либо реализовать их самостоятельно.
http://docs.unity3d.com/Manual/wp8-faq.html


Это мой код< /p>

Код: Выделить всё

using (WebClient client = new WebClient())
{
client.Encoding = System.Text.Encoding.UTF8;
client.Headers[HttpRequestHeader.ContentType] = "application/json";

byte[] requestData = new byte[0];
string jsonRequest = "{}";
if (data != null)
{
string tempRequest = Converter.SerializeToString (data);
jsonRequest = "{\"Data\": \"" + tempRequest + "\"}";

requestData = System.Text.Encoding.UTF8.GetBytes(jsonRequest);
}

// below line of code is the culprit
byte[] returnedData = client.UploadData(url, "POST", requestData);

if(returnedData.Length > 0)
{
// do stuff
}
}
Я также пробовал WebRequests, но GetResponse() его ломает, а HttpClient не существует.

Итак, как мне опубликовать данные в Unity без использования WWW на Windows Phone 8?

< strong>ОБНОВЛЕНИЕ ПО ЗАПРОСУ НА КОММЕНТАРИЙ — WebRequests

Этот код с использованием HttpWebRequest работает в редакторе и на Android, но на Windows Phone выдает ошибки, перечисленные ниже код.

Код: Выделить всё

var request = (System.Net.HttpWebRequest) System.Net.WebRequest.Create(url);
request.ContentType = "application/json";
request.Method = "POST";

var sw = new System.IO.StreamWriter(request.GetRequestStream(), System.Text.Encoding.UTF8);

sw.Write(jsonRequest); // jsonRequest is same variable as in above code, string with json object.
sw.Close();

var re = request.GetResponse();

string resultString = "";
using (var outputStream = new System.IO.StreamReader(re.GetResponseStream(), System.Text.Encoding.UTF8))
{
resultString = outputStream.ReadToEnd();
}

if(resultString.Length > 0)
{}
Ошибка 1:


Ошибка: метод System.IO.Stream System. Net.HttpWebRequest::GetRequestStream() не существует в целевой платформе.


Ошибка 2:

Код: Выделить всё

System.Net.WebResponse System.Net.HttpWebRequest::GetResponse()
не существует в целевой платформе.


ОБНОВИТЬ С БОЛЕЕ ПОДРОБНОЙ ИНФОРМацией – UploadStringAsync

Используя этот код для выполнения асинхронного запроса, он снова отлично работает в редакторе, в WP8 выдаются ошибки.

Код: Выделить всё

bool isCompleted = false;
byte[] returnedData = null;
client.UploadDataCompleted +=
new UploadDataCompletedEventHandler((object sender, UploadDataCompletedEventArgs e) =>
{
Debug.Log("return event");
returnedData = e.Result;
isCompleted =true;
});

Debug.Log("async call start");
client.UploadDataAsync(new Uri(url), requestData);

while(isCompleted == false){
Thread.Sleep(100);
}

if(returnedData.Length > 0)
{}
Ошибка 1


метод System.Void System.Net.WebClient:: add_UploadDataCompleted(System.Net.UploadDataCompletedEventHandler) не существует в целевой платформе.


Ошибка 2

Ошибка: метод System.Void System.Net.WebClient::UploadDataAsync(System.Uri,System.Byte[]) не существует в целевой платформе.


Ошибка 3


Ошибка: тип System.Net.UploadDataCompletedEventArgs не существует в целевой платформе.


Ошибка 4


Ошибка: метод System.Byte[] System.Net.UploadDataCompletedEventArgs::get_Result() не существует в целевой платформе.


Подробнее здесь: https://stackoverflow.com/questions/310 ... ws-phone-8
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Приложение Windows Phone 8.1 не создается на сервере TravisCI
    Anonymous » » в форуме C#
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Не могу получить актуальные данные для обновления в списке просмотра Windows Phone 8.1
    Anonymous » » в форуме C#
    0 Ответы
    30 Просмотры
    Последнее сообщение Anonymous
  • Приложение Windows Phone Market 1 XAPS версии 7.8 и 8 это возможно?
    Anonymous » » в форуме C#
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Установите изображение для блокировки в Windows Phone 8.1
    Anonymous » » в форуме C#
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Голосовой поиск в Windows Phone 7
    Anonymous » » в форуме C#
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»