2016-07-12 5 views
0

Я собираюсь использовать другой протокол, поэтому, возможно, реализую обработчик NSURLProtocol. Во всяком случае, сервер по-прежнему в основном хочет HTTP-запрос. Который я уже имел, когда говорю HTTP.Как получить _all_ данные NSURLRequest?

Я предполагаю, что смогу его сериализовать, но код должен быть где-то там ... просто не уверен где. Кто-нибудь знает?

Например: Я хочу, чтобы это .... от А NSURLRequest

POST /some/control/endpoint HTTP/1.1 
Header: Blah blah 
Header2: Foo Bar 

[Body data here] 

Благодарности

+0

И это невозможно собрать из свойств? – matt

ответ

0

Если вы спрашиваете, как построить запрос, это в основном:

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:...]; 
[request addValue:@"Blah blah" forHTTPHeaderField: @"Header"]; 
[request addValue:@"Foo Bar" forHTTPHeaderField: @"Header2"]; 
request.HTTPMethod = @"POST"; 

Затем создайте задачу загрузки и укажите данные тела. Обратите внимание, что вам также, вероятно, придется включать заголовки Content-Length и Content-Type.

Но если вы спрашиваете, как получить данные в формате, который вы показываете выше от запроса, вам в значительной степени придется его самостоятельно построить с помощью конкатенации строк. Помните, что вам нужно отправить \ r \ n в конце каждой строки заголовка, чтобы соответствовать спецификации.

Если вам нужна полностью совместимая реализация протокола, может быть проще создать себе локальный сокет для прослушивания, указать на него NSURLSession, захватить запрос, переслать его, захватить ответ и отправить его обратно.