2013-04-02 2 views
1

Я использую curl для отправки сообщения POST HTTP на мой сервер. На стороне сервера я открываю сокет и чтения данных, используя следующий кодНе удалось получить полное сообщение http

recv(socket_Fd, (void *)ucBuffer, (size_t)((sizeof(ucBuffer) - 1)), NULL); 

Я смог получить заголовок POST сообщение, но в теле сообщения я получаю только одна строка, остальные пропали без вести , Данные, которые я получаю на сервере.

POST /info HTTP/1.1 
User-Agent: curl/7.22.0 (i686-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3 
Host: 192.168.0.57:10000 
Accept: */* 
Content-Length: 356 
Content-Type: application/x-www-form-urlencoded 

Bhupesh Bhargava 

В заголовке сообщения отображается правильная длина контента, но тело сообщения отсутствует. Любая идея, где я делаю неправильно. локон команда Я использую

curl --data-binary @/home/bhupesh/data_save2 http://192.168.0.57:10000/info 
+0

Единственное рабочее решение, которое я получил до сих пор, это «curl --data-binary» $ (cat/home/bhupesh/data_save2) «http://192.168.0.57:10000/info ', но все же я не понимаю об этом – bhupesh

ответ

0

локонов команды вроде нормально, и если мы идем the documentation here, следующее должно быть правдой.

Данные размещены таким же образом, как --data-ASCII делает, за исключением того, что символы новой строки сохраняются и преобразования никогда не делается.

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

Смежные вопросы