2013-04-26 35 views
11

Мне был предоставлен url .. www.abc.com/details и попросил отправить мое имя и номер телефона на этот URL-адрес, используя POST. Они сказали мне, чтобы установить тип содержимого, как приложения/JSON и тела действительного JSON со следующими ключами:POST: отправка запроса на отправку по самому URL-адресу

name: name of the user 
phone number: phone number of the user 

Теперь я понятия не имею, как отправить этот запрос! Будет ли это что-то вроде:

http://www.abc.com/details?method=post&name=john&phonenumber=445566 

или я должен использовать java послать то же самое?

Пожалуйста, помогите

+1

От кого вам нужно отправить запрос? Приложение, веб-страница? На каком языке? – CodeCaster

+0

Какое программирование вы пытаетесь реализовать? – gks

+0

вот в чем смысл .. они только что сказали, что я получу ответ 200 кода, если удастся с сервера. они ничего не сказали. Могу ли я просто написать url в браузере и отправить то же самое? или я должен использовать язык программирования? – Chandeep

ответ

20

Основываясь на том, что вы предоставили, это довольно просто для того, что вам нужно делать, и у вас даже есть несколько способов сделать это. Вам понадобится что-то, что позволит вам отправить тело с вашим запросом. Практически любой язык программирования может это сделать, а также инструменты командной строки, такие как cURL.

У вас есть решение, вам нужно создать свой корпус JSON и отправить его на сервер.

Пример использования Curl будет (все в одной строке, минус \ в конце первой строки):

curl -v -H "Content-Type: application/json" -X POST \ 
    -d '{"name":"your name","phonenumber":"111-111"}' http://www.abc.com/details 

Эта команда создаст запрос, который должен выглядеть следующим образом:

POST /details HTTP/1.1 
Host: www.abc.com 
Content-Type: application/json 
Content-Length: 44 

{"name":"your name","phonenumber":"111-111"} 
2

В Java вы можете использовать GET, который показывает запрошенные данные по URL.But POST метод не может, потому что POST имеет тело, но GET есть тело выигрыш.

+1

Вы _can_ POST для URL-адреса с параметрами GET ('query') и GET [can] (http://stackoverflow.com/questions/978061/http-get-with-request -body) имеют тело , Во всяком случае, это не отвечает на вопрос. – CodeCaster

+0

@CodeCaster может быть в RESTFUL веб-сервисе GET может иметь тело, я не знаю. Но я следую за книгой HEAD FIRST - JSP и Servlet, из O'reilly. Согласно этой книге мои предыдущие утверждения в ответе правильные. может не соответствовать ответу на поставленный вопрос. В этой книге вы можете увидеть страницу № 110.GET не имеет тела. где POST имеет тело сообщения, и это ключевой момент, когда POST обрабатывает больше данных и принимает больше параметров, чем GET. –

+0

Но OP не спрашивает по поводу использования POST или GET, вопрос заключается в том, чтобы сделать POST-запрос_. – CodeCaster

6

Вы можете разместить данные в URL с JavaScript & Jquery что-то вроде этого:

$.post("www.abc.com/details", { 
    json_string: JSON.stringify({name:"John", phone number:"+410000000"}) 
}); 

Но если вы не можете обеспечить именно то, что вы хотите, мы не можем вам помочь.

+1

В моем случае $ .post ("details", {name: "John, phone:" 555-555-5555 "}), работал как шарм. Совет: сделайте это в консоли браузера во время посещения www.abc.com –

0

Невозможно отправить параметры POST в URL-адрес в виде звездного света. Запрос POST сам по себе означает отправку информации в тело.

Я нашел довольно простой способ сделать это. Используйте Postman от Google, который позволяет указать тип содержимого (поле заголовка) в качестве приложения/json, а затем предоставить пары имени-значения в качестве параметров.

Вы можете найти четкие указания на http://docs.brightcove.com/en/video-cloud/player-management/guides/postman.html

Просто используйте свой адрес в месте их.

Надеется, что это помогает

1

В окнах эта команда не работает для me..I попробовал следующую команду и он работает ..using этой команды я создал сессию в CouchDB синхронизация затвора способе для конкретного пользователя ...

curl -v -H "Content-Type: application/json" -X POST -d "{ \"name\": \"abc\",\"password\": \"abc123\" }" http://localhost:4984/todo/_session