2017-06-11 9 views
0

はSwift3とAlamofireを使用してJSONを投稿しようとすると、それはポストマンPostman screen shot で正常に動作しますが、コードに応答が私からエンコーディングを変更しようとしたサーバー で例外を意味HTML文字列でありますURLEncoding.defaultからJsonEncoding.default、それが良い動作しますが、3日後、私はアプリにAlamofireポストJSONとレスポンスJSON

let url = "http://mattam.net/mobileapp/addOrder" 
let par:[String:Any] = ["order_restaurant":8, 
           "order_type":1, 
           "order_address":1, 
           "order_within":"45 mins", 
           "order_exacttime":"09:00 pm", 
           "order_total":300, 
           "order_fees":30, 
           "order_gtotal":330, 
           "order_user":38, 
           "pquantity[10]":3, 
           "pquantity[9]":1, 
           "poption[9]":238, 
           "pextra[10]":"80,81"] 



     print(par) 


     Alamofire.request(url, method: .post, parameters: par, encoding: URLEncoding.default).responseJSON{ 
       r in 
       if r.result.isSuccess{print("------i______i-----")} 
       print(r) 
       if let result = r.result.value as? NSDictionary{ 
        print(result)} 

      } 

を実行して、郵便配達の一括編集で同じエラーが発生した後

order_restaurant:8 
order_type:1 
order_address:1 
order_within:45 mins 
order_exacttime:09:00 pm 
order_total:300 
order_fees:30 
order_gtotal:330 
order_user:38 
pquantity[10]:3 
pquantity[9]:1 
poption[9]:238 
pextra[10]:80,81 

とURL私ですsが、私は右のあなたの質問を理解していれば、あなたはので、ここで、JSONとしてサーバーにいくつかのポストの詳細情報を送信する必要がありhttp://mattam.net/mobileapp/addOrder「」

+0

サーバー側でエラーが発生している場合は、これが修正されましたか? – paulvs

+0

いいえ投稿者にはいいですがアプリにはエラーがあります –

答えて

1

あなたの問題は、あなたのアプリにhttpsの代わりにhttpを使用していることです。 投稿した(あなたのコードからコピーした)URLはhttpですが、スクリーンショットはhttpsです。

0

「URLを=聞かせすることは」それをするいくつかのコードです:

private func alamoFireAjax(url: String, parameters: Parameters, callback: @escaping (DataResponse<Any>) -> Void) { 
    Alamofire.request(url, method: .post, parameters: parameters, encoding: JSONEncoding.default).responseJSON(completionHandler: callback) 
} 
+0

私の質問を編集してURLを追加しましたが、コードがよく見えますが、わかりませんでした。問題は あなた自身で試してみませんか? –

+0

これはサーバーエラーのようです。ページをロードするときにエラーが発生します。 'RouteCollection.php 218行のMethodNotAllowedHttpException ' – KingCoder11

+0

ですが、投稿者にはエラーがありません –

0

私は同様の問題を抱えていましたが、それを解決するために辞書作成をメソッド呼び出しに置きました。あなたはたいていのリクエストで逃げることができますが、別のメソッドハンドラが必要な10行を超えるものが見つかりました。

fileprivate func generateParams() -> [String: Any] { 

    var params = [String: Any]() 

    params["order_restaurant"] = 8 
    params["order_type"] = 1 
    params["order_address"] = 1 
    params["order_within"] = "45 mins" 
    params["order_exacttime"] = "09:00 pm" 
    params["order_total"] = 300 
    params["order_fees"] = 30 
    params["order_gtotal"] = 330 
    params["order_user"] = 38 
    params["pquantity[10]"] = 3 
    params["pquantity[9]"] = 1 
    params["poption[9]"] = 238 
    params["pextra[10]"] = "80,81" 

    return params 

} 
+0

良い提案 –