私は自分のWebサーバーにPOSTデータを必要とする迅速なアプリケーションを作成しています。
現時点では、私の迅速なコードはこのように見えます。Alamofire not PHPスクリプトへの投稿
fileprivate class AlamofireHelper {
static var Manager : Alamofire.SessionManager = {
// Create the server trust policies
let serverTrustPolicies: [String: ServerTrustPolicy] = [
"192.168.1.243": .disableEvaluation
]
// Create custom manager
let configuration = URLSessionConfiguration.default
configuration.httpAdditionalHeaders = Alamofire.SessionManager.defaultHTTPHeaders
let man = Alamofire.SessionManager(
configuration: URLSessionConfiguration.default,
serverTrustPolicyManager: ServerTrustPolicyManager(policies: serverTrustPolicies)
)
return man
}()
}
class UploadHelper
{
private var _postData = [String:Any]()
private let almoHelper = AlamofireHelper.Manager
init(username:String) {
_postData["username"] = username
print("Setup")
submitRequest()
}
func submitRequest()
{
print("Data is: \(_postData)")
almoHelper.request("http:/192.168.1.243/networkStorage", method: .post, parameters: _postData, encoding: JSONEncoding.default).responseString { (responce) in
print("Responce: \(responce)")
}
}
}
PHP:
<?php
echo "POST: " . var_dump($_POST) . "\n\n\n\n";
echo "GET: " . var_dump($_GET);
?>
唯一の問題は、私はSWIFTコードlet helper = UploadHelper(username: iProgram)
を実行したとき、私は私のPHPスクリプトからの応答を下回る取得するには、次のとおりです。
Data: ["username": "iProgram"]
Responce: SUCCESS: array(0) {
}
POST:
array(0) {
}
GET:
私のPOSTされている理由GET変数は空ですか?私はPOSTデータを送信するだけなのでGETが空であることを理解していますが、POSTは "username = iProgrammer"のようなものではありませんか?
Finalyが、ここで私はげっぷのスーツから取り込んだHTTPリクエストです:
GET /networkStorage/ HTTP/1.1
Host: 192.168.1.243
Accept: */*
User-Agent: Network%20Storage/1 CFNetwork/808.2.16 Darwin/16.3.0
Accept-Language: en-gb
Accept-Encoding: gzip, deflate
Connection: close
編集: 何らかの理由で、私は「GET」を表示するために以下のコードを使用して、私のPHPスクリプトを変更したとき変数、私はそれが送信すべきデータを見ることができます。
almoHelper.request("http://192.168.1.243/networkStorage", method: .get, parameters: _postData).responseString { (myResponce) in
let result = myResponce.result
print("Result is: \(result.value!)")
}
そして、ここで私はげっぷスイートから傍受された要求は、次のとおりです。
GET /networkStorage/?username=iProgram HTTP/1.1
Host: 192.168.1.243
Accept: */*
User-Agent: Network%20Storage/1 CFNetwork/808.2.16 Darwin/16.3.0
Accept-Language: en-gb
Accept-Encoding: gzip, deflate
Connection: close
<?php $ postdata = file_get_contents( "php:// input")を使用して未加工の投稿データを読み込もうとしますか? ?> –
@PawelDubielそこからデータをエコーアウトすると、何も印刷されません。 – iProgram