Я пишу быстрый код для отправки HTTP-запроса на сервер php. Но мой php-скрипт всегда получает странное тело сообщения, потому что параметры обертываются с помощью опции(), если я отправляю такие параметры, как «id = john & password = 1234», сервер получит опцию (id = john & password = 1234) , Но это не то, что я хочу, потому что php не может анализировать параметры обычным способом. Я понятия не имею, что здесь происходит;Почему тело запроса HTTP-сообщения всегда завернуто дополнительным текстом в приложении Swift
var postString: String = "id=john&password=1111"
request.HTTPBody = (postString.dataUsingEncoding(NSUTF8StringEncoding))
println("Body will send: \(request.HTTPBody)")
var postLength:NSString = String(postString2.dataUsingEncoding(NSUTF8StringEncoding)!.length)
request.setValue(postLength, forHTTPHeaderField: "Content-Length")
request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
request.setValue("multipart/form-data", forHTTPHeaderField: "Accept")
После вышеуказанного подготовительного кода я использую метод dataTaskWithRequest для отправки сообщения. После этого вопроса в течение нескольких дней я схожу с ума по этой нерешенной проблеме. Нужна подсказка, чтобы исправить это. Пожалуйста, порекомендуйте!
Вы уверены, что сервер получает это, или это то, что вы видите в журналах? – jrturton
Я подозреваю, что вы видите, что «Тело отправит: Необязательно ...» в журналы вашего устройства (в отличие от журналов сервера). Если это так, его можно эффективно игнорировать, поскольку «HTTPBody» является необязательным значением, поэтому ваш println сообщает вам, что, обернув его. Само фактическое тело не будет содержать дополнительных. –
Я также отмечаю, что вы настраиваете тело, используя postString и Content-Length, используя postString2. –