2017-11-02 18 views
1

私はphp webAPIがうまく動作しており、私はそのアプリケーションでログインしたいと思っています。私はそれのためにクッキーを使いたい。だから、私がクッキーを保存するのは、ユーザーがログインして動作するときです。私はHTTPCookieStorage.sharedに場所クッキーだけを使いたいときにuserdefaultsに保存します。Swift - urlsession cookies

私はこれを新しいリクエストに使用しようとしています。私の質問はどのように私のリクエストにクッキーを追加できますか?

私はこれを試してみましたが、それは働いていない...

let cookiesArray = HTTPCookieStorage.shared.cookies 
    print(cookiesArray) 
    //HTTPCookieStorage.shared.setCookies(cookiesArray!, for: url, mainDocumentURL: url) 
    let headers = HTTPCookie.requestHeaderFields(with: cookiesArray!) 



    var urlRequest = URLRequest(url: url) 
    urlRequest.httpMethod = "POST" 
    urlRequest.httpShouldHandleCookies = true 
    urlRequest.httpBody = postString.data(using: String.Encoding.utf8) 

    urlRequest.allHTTPHeaderFields = headers 
    //urlRequest.setValue("PHPSESSID=oe22uf92poc5c7s23u4ukl83g0", forHTTPHeaderField: "Cookie") 

    //URLSessionConfiguration().httpCookieAcceptPolicy = .always 
    let session = URLSession.shared 
    session.configuration.httpCookieStorage = HTTPCookieStorage.shared 
    session.configuration.httpCookieAcceptPolicy = .always 
    session.configuration.httpShouldSetCookies = true 
    session.configuration.httpAdditionalHeaders = headers 
    let task = session.dataTask(with: urlRequest) { (data, response, error) in 




     print(data) 
     print(response) 
     print(error) 
     print("itt az end\n") 
    } 
    task.resume() 
+0

「それは働いていない」よりも、問題のより具体的な説明の人が問題を特定し、より良い答えを提供するのに役立ちます。 – Caleb

+0

私は同じ問題があります。これまでに解決策を見つけましたか? –

答えて

1

を私はまだコメントできませんが、私はより多くの情報が必要であることに同意するものとします。あなたが間違いをしているなら、それらは投稿するのに役立つだろう。また、あなたのために何を得ているのですか

data 
response 
error 

が役に立ちます。

それ以外の場合は、まずチャールズをHTTPプロキシとして設定して、リクエストを行ったときに何が起きているかを正確に見ることができます。あなたが受け取っているレスポンスを知ることで、何がうまくいかないのかがわかります。

https://www.charlesproxy.com/

関連する問題