1

Python のこのコードから Erlang に切り替えたい:

パイソン:

import httplib

body="<xml>...</xml>"
headers = { \
"Accept" :  "text/*" , \
"User-Agent" : "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" , \
"Host" : "something.com" , \
"Content-Length" : str( len( body ) ) , \
"Connection" : "Keep-Alive" , \
"Cache-Control" : "no-cache" , \
}
server="something.com"
url="/s.srf"

conn = httplib.HTTPSConnection(server,443)
conn.request("POST", url, body, headers)

-> 私はこのErlangを試しました:

Headers=[
        {"Accept","text/*"},
        {"User-Agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"},
        {"Host","something.com"},
        {"Content-Length",string:len(Body)},
        {"Connection","Keep-Alive"},
        {"Cache-Control","no-cache"}
        ].
httpc:request(post,{Server,Headers,[],Body},[],[]).

しかし、URL「/s.srf」をどこに置くことができるかわかりません。何かアイデアはありますか?

4

2 に答える 2

0

request()タプルの最初の要素は、サーバーだけでなく URL 全体である必要があります。

Url = "http://" ++ Server ++ "/s.srf",
httpc:request(post,{Url,Headers,[],Body},[],[]).

また、Erlang コードで整数を使用して Content-Length 値を設定しています。同じドキュメントによると、すべての値は文字列型にする必要があります。

{"Content-Length", integer_to_list(string:len(Body))}
于 2012-07-14T17:46:43.590 に答える
0

に含める必要がありますServer

Server = "http://something.com/s.srf"

それを考えると、変数名を変更したいかもしれません。(そして、プロトコルを含めることを忘れないでください!)。

ソース: httpc ドキュメント

于 2012-07-14T17:47:11.093 に答える