2017-11-27 12 views
0

以下のコードにはコンパイルエラーはありません。
サーバーレスポンスとしてAuthorizationヘッダーを送信できません401

はしかし、私は、サーバーからのメッセージが表示されました:401

をこれは私が送られたヘッダーを受信できないサーバーを意味します。 VAR strToken = strToken1 + " "+ strToken2 +"、ベーシック" + strBase64Credential

更新:

strBase64Credentialは次のとおりです。ユーザー名とパスワード

マイAuhtorizationヘッダは、この値が含まれているが

strToken1とstrToken2は

What I did wrong and Why server did not receive the header values? 


in plist : I added this : 

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSAllowsArbitraryLoads</key> 
    <true/> 
</dict> 




var request = URLRequest(url: StrURL) 

var strToken = strToken1 + ", " + strToken2 + ", Basic " + strBase64Credential 

request.httpMethod = "GET" 
request.setValue("application/json", forHttpHeaderField:"Content-type") 

request.setValue(strToken, forHTTPHeaderField: "Authorization") 

let session = URLSession.shared 

session.addTask(with: request) { (data,response,error) in 

    if let response = response { 

    print(response) 
    } else { 

     return 

    } 

    if let data = data{ 

    //-- handle data here 

    } 

}.resume() 
をユーザー名とパスワード
されていません

助けてください。

答えて

0

このコードを試してください。 strToken1はuserName、strToken2はパスワードと同じです。この形式は、基本認証プロセスに使用されます。

let basicAuthString = "\(userName):\(password)" 
    let utf8str = basicAuthString.dataUsingEncoding(NSUTF8StringEncoding) 
    let base64EncodedString = utf8str?.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(0)) 

    request.addValue("Basic \(base64EncodedString!)", forHTTPHeaderField: "Authorization") 
+0

VAR strToken = strToken1 + " "+ strToken2 +"、ベーシック" + strBase64Credentialはユーザー名ですstrBase64Crendential:ちょうど更新されたパスワード – MilkBottle

+0

。はい。 – MilkBottle

+0

なぜ認証文字列を作成するためにstrToken1とstrToken2が必要ですか? 許可ユーザー名とパスワードでは不十分ですか? –

関連する問題