Swift — POST-запрос распознается как GET на сервере

Создание простого запроса POST из Swift в Apache / PHP.

Свифт код:

let request = NSMutableURLRequest(URL: NSURL(string: "http://dzr.lenyapugachev.ru/createMember")!)
request.HTTPMethod = "POST"let postString = "id=13&name=Jack"request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding)
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
data, response, error in

if error != nil {
println("error=\(error)")
return
}

println("response = \(response)")

let responseString = NSString(data: data, encoding: NSUTF8StringEncoding)
println("responseString = \(responseString)")
}
task.resume()

PHP:

<?php

echo $_SERVER['REQUEST_METHOD']."\n";
var_dump($_POST);

?>

Выход:

GET
array(0) {}

Таким образом, это не действует как POST для сервера. Я также пробовал Alamofire и SwiftHTTP, тот же эффект.

Пожалуйста, добрые люди, помогите.

0

Решение

Это действительно запрос HTTP POST. Ничего плохого в вашем коде. С помощью Чарльз (прокси-сервер отладки HTPP) Я вижу, что ваш запрос перенаправляется (301 HTTP)

Вам нужно исправить конфигурацию кода / .httpaccess вашего сервера

Запрос:

POST /createMember HTTP/1.1
Host    dzr.lenyapugachev.ru
Accept-Encoding gzip, deflate
Content-Type    application/x-www-form-urlencoded
Content-Length  15
Accept-Language en-us
Accept  */*
Connection  keep-alive
User-Agent  29530174/1 CFNetwork/711.2.23 Darwin/13.4.0

Отклик:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://dzr.lenyapugachev.ru/createMember/">here</a>.</p>
</body></html>
0

Другие решения

проверьте свой URL
для PHP сервера это должен быть файл .Php

используется в качестве
let request = NSMutableURLRequest(URL: NSURL(string: "http://dzr.lenyapugachev.ru/createMember.php")
!)

Также, если вы отправляете параметр вашего запроса php сервера, как

let request = NSMutableURLRequest(URL: NSURL(string: "http://dzr.lenyapugachev.ru/createMember.php?id=13&name=Jack")!)

обратитесь к этому учебному пособию, включая код php и swift для отправки запроса Учебное пособие: API-интерфейс POST TO WEB-сервера при использовании NSURLCONNECTION

0

По вопросам рекламы [email protected]