私はいくつかのcURLコマンドをC#の実装に変換しようとしていますが、解決できない例外が発生しています。cURLをHttpClient.PutAsyncに変換する
誰かが私をさらに助けてくれることを期待してできる限り多くの情報を集めようとしました。ここでは...行く
cURLの声明:
curl -i -X PUT "http://[ipaddress]:[port]/webhdfs/v1/[appname]/staging/sensors/aap.txt?user.name=[username]&op=CREATE"
C#バージョン:
HRESULT = -2146233088:
WebException
でvar response = await client.PutAsync( "http://[ipaddress]:[port]/webhdfs/v1/[appname]/staging/sensors/aap.txt?user.name=[username]&op=CREATE", null);
C#バージョンの結果
メッセージ=遠隔e-nameは解決できません: 'ip-172-31-9-79.eu-central-1.compute.internal'
私が接続しているサーバーはHadoopサーバーです。そのサーバーで複数のインスタンスが実行されています。したがって、ファイルを保存すると、サーバーはこのファイルが格納されているインスタンスに関する情報を返信します(このファイルに書き込むときにそのインスタンスを参照できるようになります)。
エラーメッセージに基づいて、アクセスできないIPアドレスへの何らかの参照を受けているようです(そのIPアドレスはそのHadoopサーバーの内部IPアドレスなので意味があります)
私が送信される要求の違いを見つけるために、Wiresharkのを使用
のcURLを使用して:。
Frame 57: 204 bytes on wire (1632 bits), 204 bytes captured (1632 bits) on interface 0
Ethernet II, Src: IntelCor_da:f4:44 (fc:f8:ae:da:f4:44), Dst: AsustekC_32:7d:b0 (ac:22:0b:32:7d:b0)
Internet Protocol Version 4, Src: 192.168.1.107, Dst: [ipaddress]
Transmission Control Protocol, Src Port: 60454, Dst Port: 50070, Seq: 1, Ack: 1, Len: 150
Hypertext Transfer Protocol
PUT /webhdfs/v1/[appname]/staging/sensors/aap.txt?user.name=hdfs&op=CREATE HTTP/1.1\r\n
[Expert Info (Chat/Sequence): PUT /webhdfs/v1/[appname]/staging/sensors/aap.txt?user.name=hdfs&op=CREATE HTTP/1.1\r\n]
[PUT /webhdfs/v1/[appname]/staging/sensors/aap.txt?user.name=hdfs&op=CREATE HTTP/1.1\r\n]
[Severity level: Chat]
[Group: Sequence]
Request Method: PUT
Request URI: /webhdfs/v1/[appname]/staging/sensors/aap.txt?user.name=hdfs&op=CREATE
Request URI Path: /webhdfs/v1/[appname]/staging/sensors/aap.txt
Request URI Query: user.name=hdfs&op=CREATE
Request URI Query Parameter: user.name=hdfs
Request URI Query Parameter: op=CREATE
Request Version: HTTP/1.1
Host: [ipaddress]:50070\r\n
User-Agent: curl/7.50.0\r\n
Accept: */*\r\n
\r\n
[Full request URI: http://[ipaddress]:50070/webhdfs/v1/[appname]/staging/sensors/aap.txt?user.name=hdfs&op=CREATE]
[HTTP request 1/1]
[Response in frame: 59]
HttpClient
使用:
Frame 381: 209 bytes on wire (1672 bits), 209 bytes captured (1672 bits) on interface 0
Ethernet II, Src: IntelCor_da:f4:44 (fc:f8:ae:da:f4:44), Dst: AsustekC_32:7d:b0 (ac:22:0b:32:7d:b0)
Internet Protocol Version 4, Src: 192.168.1.107, Dst: [ipaddress]
Transmission Control Protocol, Src Port: 60541, Dst Port: 50070, Seq: 1, Ack: 1, Len: 155
Hypertext Transfer Protocol
PUT /webhdfs/v1/[appname]/staging/sensors/aap.txt?user.name=hdfs&op=CREATE HTTP/1.1\r\n
[Expert Info (Chat/Sequence): PUT /webhdfs/v1/[appname]/staging/sensors/aap.txt?user.name=hdfs&op=CREATE HTTP/1.1\r\n]
[PUT /webhdfs/v1/[appname]/staging/sensors/aap.txt?user.name=hdfs&op=CREATE HTTP/1.1\r\n]
[Severity level: Chat]
[Group: Sequence]
Request Method: PUT
Request URI: /webhdfs/v1/[appname]/staging/sensors/aap.txt?user.name=hdfs&op=CREATE
Request URI Path: /webhdfs/v1/[appname]/staging/sensors/aap.txt
Request URI Query: user.name=hdfs&op=CREATE
Request URI Query Parameter: user.name=hdfs
Request URI Query Parameter: op=CREATE
Request Version: HTTP/1.1
Host: [ipaddress]:50070\r\n
Content-Length: 0\r\n
Connection: Keep-Alive\r\n
\r\n
[Full request URI: http://[ipaddress]:50070/webhdfs/v1/[appname]/staging/sensors/aap.txt?user.name=hdfs&op=CREATE]
[HTTP request 1/1]
[Response in frame: 383]
、唯一注目に値する(私にとって無意味な)の違いは以下のとおりです。
- のUser-Agent:/ 7.50.0カール\ rを\ nは
- が受け入れ:/ \ rを\ nは
- 対のContent-Length:0 \ rをする\ nは
- 接続:キープアライブ\私ははっきりと非常に少ないRESTプログラミングの経験、およびWeb要求を分析する上で十分な知識を持っている
のR \ nは。いくつかのヘルプ/ガイダンス/説明は非常に高く評価されます。ただ、完全性について
:
- はい、私はcURLのために、Windowsの実行ファイルがあることを承知していますが、私はラズベリーPI/WindowsのIoTを上で実行します。私の知る限りでは(まだ)その特定のプラットフォーム私は意図的にちょうど安全側のWRTのセキュリティであることをIPアドレス/ APPNAMEの/ etcを残し上記の文で
- については何もない私がいることが分かった