Има ли някакъв начин за изпращане на POST данни в GET заявка с помощта на ASIHTTPRequest или друга мрежова библиотека в iOS?
POST данни в GET заявка iOS
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
Уеб сървърът е проектиран да работи по този начин. Съответният 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
просто не съм сигурен как да предам този JSON в --data към GET заявка
- person akshay1188; 22.10.2012
Опитвали ли сте да използвате
ASIFormDataRequest
(вижте документите, към които се свързах в моя отговор), добавяйки POST данните според примера и след това задавайки типа заявка на GET като myRequest.
requestMethod = @GET;`?
- person deanWombourne; 22.10.2012
да Опитах това. Когато използвам setPostValue:forKey: получавам 405 Method Not Allowed.
- person akshay1188; 22.10.2012
Това е от вашия сървър, не от ASI - какво се изпраща по кабела до сървъра? Данните за публикацията бяха ли добавени или изпратени изобщо?
- person deanWombourne; 22.10.2012
да Това е от сървъра. Използвах HTTPScoop и той показва JSON в POST данни на заявката. Предполагам, че не е възможно. Току-що попаднах на това https://groups.google.com/forum/?fromgroups=#!topic/asihttprequest/kY8R8RlqO3Q
- person akshay1188; 22.10.2012
Първо казвате, че изпраща POST данните и след това казвате, че не е възможно? Ако HTTPScoop казва, че JSON е преминал от устройството към сървъра, със сигурност това е проблем от страната на сървъра?
- person deanWombourne; 22.10.2012
JSON премина, но сървърът не го приема. Защото въпреки че задавам requestMethod на @GET, той ме показва като POST в scoop.
- person akshay1188; 22.10.2012
Можете ли да подкласирате
ASIFormDataRequest
, за да предавате винаги GET
като метод?
- person deanWombourne; 22.10.2012