POST данни в GET заявка iOS

Има ли някакъв начин за изпращане на POST данни в GET заявка с помощта на ASIHTTPRequest или друга мрежова библиотека в iOS?


person akshay1188    schedule 22.10.2012    source източник
comment
Какъв вид POST данни? Искате ли да зададете тялото на заявката?   -  person    schedule 22.10.2012
comment
POST и GET са методи на HTTP, ако POST нещо попълвате тялото на HTTP с параметър. Когато ПОЛУЧИТЕ нещо, бихте използвали URL низ за заявка, за да зададете някои параметри. Ако искате да смесите двете, използвайте POST, тъй като това ще ви позволи да зададете параметри в тялото на HTTP и да добавите параметри на низ на заявка за URL.   -  person rckoenes    schedule 22.10.2012
comment
Искам да прикача JSON данни към тялото на заявката   -  person akshay1188    schedule 22.10.2012
comment
Нещо като това stackoverflow.com/ въпроси/2064281/   -  person akshay1188    schedule 22.10.2012
comment
whathaveyoutried.com   -  person deanWombourne    schedule 22.10.2012
comment
Опитах се да го прикача като GET параметри, но това не работи. Освен това не може да се прикачи JSON в заглавката, тъй като няма ключ, към който може да се прикачи   -  person akshay1188    schedule 22.10.2012


Отговори (1)


Добавянето на POST данни към GET заявка всъщност няма особен смисъл - някои прокси сървъри няма да го харесат, а някои уеб сървъри няма да го приемат или ще обезобразят данните по пътя. Въпреки това, предполагам, че има няколко места за започнете, ако сте уверени, че ще работи с вашия сървър:

Търсенето на думата POST в ASI документите ще ви покаже как да използвате ASIHTTPRequest обект. ASI обаче е отхвърлен и трябва да се използват други решения.

Търсенето на препълване на стека ви дава този въпрос, който ви показва как да добавите POST данни към NSURLRequest

person deanWombourne    schedule 22.10.2012
comment
Уеб сървърът е проектиран да работи по този начин. Съответният cURL скрипт работи. Примерен формат - curl -i --header Content-Type: application/json --header Accept: application/json --header client-agent: 1.21.2 -X GET --data {authtoken:lfghaskjhgh,selection:value} serveraddress - person akshay1188; 22.10.2012
comment
просто не съм сигурен как да предам този JSON в --data към GET заявка - person akshay1188; 22.10.2012
comment
Опитвали ли сте да използвате ASIFormDataRequest (вижте документите, към които се свързах в моя отговор), добавяйки POST данните според примера и след това задавайки типа заявка на GET като myRequest.requestMethod = @GET;`? - person deanWombourne; 22.10.2012
comment
да Опитах това. Когато използвам setPostValue:forKey: получавам 405 Method Not Allowed. - person akshay1188; 22.10.2012
comment
Това е от вашия сървър, не от ASI - какво се изпраща по кабела до сървъра? Данните за публикацията бяха ли добавени или изпратени изобщо? - person deanWombourne; 22.10.2012
comment
да Това е от сървъра. Използвах HTTPScoop и той показва JSON в POST данни на заявката. Предполагам, че не е възможно. Току-що попаднах на това https://groups.google.com/forum/?fromgroups=#!topic/asihttprequest/kY8R8RlqO3Q - person akshay1188; 22.10.2012
comment
Първо казвате, че изпраща POST данните и след това казвате, че не е възможно? Ако HTTPScoop казва, че JSON е преминал от устройството към сървъра, със сигурност това е проблем от страната на сървъра? - person deanWombourne; 22.10.2012
comment
JSON премина, но сървърът не го приема. Защото въпреки че задавам requestMethod на @GET, той ме показва като POST в scoop. - person akshay1188; 22.10.2012
comment
Можете ли да подкласирате ASIFormDataRequest, за да предавате винаги GET като метод? - person deanWombourne; 22.10.2012