我應該如何在httpc:request()函數所做的http請求中爲客戶端授權指定用戶/密碼?Inets http client + authorization
2
A
回答
1
對於消化,你需要做同樣的事情,基本的,但更是這樣。一般而言,您將在未經身份驗證的情況下訪問該頁面,獲取「WWW-Authenticate」標題信息,然後使用領域和隨機數生成您的「授權」標題。 http://en.wikipedia.org/wiki/Digest_access_authentication在底部有一個體面的例子。
對於大多數使用情況來說,HTTPS + Basic通常是足夠的,如果不是更好的話。
2
我在HTTPOptions持有通和用戶文檔,請參閱:
HTTPOptions = http_options()
http_options() = [http_option()]
http_option() = {timeout, timeout()} | {connect_timeout, timeout()} | {ssl, ssloptions()} | {ossl, ssloptions()} | {essl, ssloptions()} | {autoredirect, boolean()} | {proxy_auth, {userstring(), passwordstring()}} | {version, http_version()} | {relaxed, boolean()} | {url_encode, boolean()}
9
我不認爲httpc
模塊,提供設施。儘管如此,它並不難實現(如果我們正在談論基本身份驗證)。畢竟它只是一個額外的請求頭,其中'user:password'對Base64編碼。 例如Tsung's ts_http_common module這樣做。
舉例來說,這裏是如何通過基本身份驗證運行HTTP PUT請求:
auth_header(User, Pass) ->
Encoded = base64:encode_to_string(lists:append([User,":",Pass])),
{"Authorization","Basic " ++ Encoded}.
put_request(Url, User, Pass, Body) ->
ContentType = "text/json",
Headers = [auth_header(User, Pass), {"Content-Type",ContentType}],
Options = [{body_format,binary}],
httpc:request(put, {Url, Headers, ContentType, Body}, [], Options).
+0
Thx,它完成這項工作。摘要怎麼樣?似乎inets也不支持它。 – mkorszun
0
嘗試使用ibrowse,支持,我一直在使用!
相關問題
- 1. 二郎:HTTP Accept頭與Inets
- 2. Guzzle HTTP Client - statusCode
- 3. Zend Http Client
- 4. Set-Cookie和Google HTTP Client Client Library for Java
- 5. java.lang.NoClassDefFoundError:org/apache/http/client/HttpClient
- 6. Doubleclick bid manager api authorization
- 7. 當在http:// localhost/projects/client-1/
- 8. Class'Guzzle \ Http \ Client'找不到
- 9. Erlang HTTP:你如何在Inets或Ibrowse請求中包含Body?
- 10. 處理二郎inets HTTP客戶端錯誤
- 11. http \ Client-> enqueue(http \ Client \ Request) - > send()重置連接到服務器PHP
- 12. request.Headers [「Authorization」] =「Bearer」+ accessToken;
- 13. iphone - Authorization Post請願
- 14. 將代理與Google HTTP Client Client Library結合使用
- 15. inets是否支持CGI?
- 16. Erlang:使用SSL的inets httpd
- 17. Soap Header with Authorization Basic in native PHP
- 18. 將`Authorization Bearer`哈希添加到Net :: HTTP發佈請求(Ruby)
- 19. 需要Authorization頭與AngularJS ngResource攔截HTTP請求
- 20. 如何在Http Authorization Header中轉換併發送字符串?
- 21. Docebo X-Authorization參數
- 22. google-http-java-client使用方法android
- 23. Laravel Class'App \ Http \ Controllers \ GuzzleHttp \ Client'找不到
- 24. Google Glass使用http-client上傳文件
- 25. 導入timboudreau netty-http-client到eclipse中?
- 26. 獲取異常faultCode:{http://schemas.xmlsoap.org/soap/envelope/}Client
- 27. java-calling使用Apache Http Client的方法
- 28. Jython multipart post with commons http-client/core
- 29. Http Client在簽署APK後返回null
- 30. Intermittent javax.xml.ws.soap.SOAPFaultException:Unqualified {http://schemas.xmlsoap.org/soap/envelope/}Client錯誤
您可能正在談論代理授權,它由屬性{proxy_auth,{userstring(),passwordstring()}}指定。儘管如此,它並沒有解決我的問題。 – mkorszun