Есть ли способ отправить данные POST в запросе GET с помощью ASIHTTPRequest или любой другой сетевой библиотеки в iOS?
POST-данные в GET-запросе iOS
comment
Какие данные POST? Вы хотите установить тело запроса?
- person   schedule 22.10.2012
comment
POST и GET - это методы HTTP, если вы отправляете что-то, вы заполняете тело 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} адрес сервера
- 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 в совке.
- person akshay1188; 22.10.2012
Можете ли вы создать подкласс
ASIFormDataRequest
, чтобы всегда передавать GET
в качестве метода?
- person deanWombourne; 22.10.2012