Я вызываю службу из PHP с помощью cURL, например:
$response = curl_exec($ch);
а заголовки запроса/ответа выглядят примерно так:
Запрос:
POST /item/save HTTP/1.1
Host: services.mydomain.com
Accept: */*
Content-Length: 429
Expect: 100-continue
Content-Type: multipart/form-data
Ответ:
HTTP/1.1 100 Continue
HTTP/1.1 200 OK
Date: Fri, 06 Jul 2012 08:37:01 GMT
Server: Apache
Vary: Accept-Encoding,User-Agent
Content-Length: 256
Content-Type: application/json; charset=utf-8
за которым следует тело (json закодированные данные).
Проблема состоит в том, что общая задача состоит в том, чтобы разделить заголовки и тело в ответе на первую пустую строку, за исключением того, что в этом случае пустая строка находится после 100 Continue
, и поэтому все остальное попадает в тело - и это недействительно json больше: -)
Итак, мой вопрос таков: какой общий способ справиться с этим? У меня есть 3 варианта:
- Укажите, что завиток не должен ожидать
100-continue
? (Как?) - Укажите, что завиток должен отправлять только заголовки последнего ответа? (Как?)
- Вручную проверять заголовки
100 Continue
и игнорировать их и следующую пустую строку? (В этом случае, есть ли другие подобные вещи, которые могут произойти, что я должен проверить вручную?)
Если мне не хватает чего-то очевидного, я уверен, что люди наткнулись на это и решили его много раз!