Я пытаюсь загрузить API загрузки TestFlight для автоматизации сборки. Вот их документация: https://testflightapp.com/api/doc/Использование параметров WebRequest для POST и данных для TestFlight
Это запрос командной строки в минималистском локон, что я проверил и он работает:
.\curl.exe http://testflightapp.com/api/builds.json
-F [email protected]
-F api_token='myapitoken' -F team_token='myteamtoken'
-F notes='curl test'
Я попытался преобразовать это в C# как это:
var uploadRequest = WebRequest.Create("http://testflightapp.com/api/builds.json") as HttpWebRequest;
uploadRequest.Method = "POST";
uploadRequest.ContentType = "multipart/form-data";
var postParameters = string.Format("api_token={0}&team_token={1}¬es=autobuild&file=", TESTFLIGHT_API_TOKEN, TESTFLIGHT_TEAM_TOKEN);
var byteParameters = Encoding.UTF8.GetBytes(postParameters);
var ipaData = File.ReadAllBytes(IPA_PATH);
uploadRequest.ContentLength = byteParameters.Length + ipaData.Length;
var requestStream = uploadRequest.GetRequestStream();
requestStream.Write(byteParameters, 0, byteParameters.Length);
requestStream.Write(ipaData, 0, ipaData.Length);
requestStream.Close();
var uploadResponse = uploadRequest.GetResponse();
К сожалению, на GetResponse()
Я получаю (500) Internal Server Error
и не более подробную информацию.
Я не уверен, что данные в моих postParameters должны быть обернуты '
или нет. Я пробовал это в обоих направлениях. Я также не знаю, подходит ли мой тип контента. Я также пробовал application/x-www-form-urlencoded
, но это не имело никакого эффекта.
Любая помощь очень ценится.
Это может помочь вам http://stackoverflow.com/questions/219827/multipart-forms-from-c-sharp-client Вы должны различать детали, так как это многопользовательский запрос –
Спасибо - после вашей ссылки trail взяла меня на restsharp, http://restsharp.org/, что позволило мне выполнить запрос в 13 строк без пробелов! – tenpn