0

以下は、Webサイトに接続し、POSTメソッドを介してファイルをアップロードするJavaクライアントから抜粋したものです。このクライアントをVisualStudio環境で再現する必要がありますが、Javaで使用される setEntity()関数に相当する関数が.NET環境に表示されません。

私が見つけたものはすべて、これを使用することを示しています...

public void uploadFile(File uploadFile, String partner, String key,
            String baseUrl,boolean isPartner) throws IOException {
    DefaultHttpClient httpclient = new DefaultHttpClient();
    httpclient.getParams().setParameter(
        CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1
    );
    String url = baseUrl + "?" + (isPartner ? "partnerId" : "ori") + "="
            + partner.toUpperCase() + "&authKey=" 
            + key+ "&key=" 
            + key;
    HttpPost httppost = new HttpPost(url);
    MultipartEntity multipartEntity = new MultipartEntity();
    ContentBody contentBody = new FileBody(uploadFile, "text/xml"); 
    multipartEntity.addPart("dataFile", contentBody); 
    httppost.setEntity(multipartEntity);

    HttpResponse response;
    response = httpclient.execute(httppost);

    HttpEntity resEntity = response.getEntity();

    if (resEntity != null) {
        resEntity.consumeContent();
    }

    httpclient.getConnectionManager().shutdown();
}

Visual Studioで見つけたものはすべて、POSTメソッドに次のようなものを使用しています。WebRequestオブジェクトには、必要なパラメーターを追加する明確な方法がありません。

Dim request As WebRequest = WebRequest.Create("http://Test.com/import?partnerId=2&authKey=XdUa")
request.Method = "POST"
Dim postData As String = StrData
Dim byteArray As Byte() = Encoding.UTF8.GetBytes(postData)
request.ContentType = "dataStr"
request.ContentLength = byteArray.Length
Dim dataStream As Stream = request.GetRequestStream()
dataStream.Write(byteArray, 0, byteArray.Length)
dataStream.Close()
Dim response As WebResponse = request.GetResponse()

任意のガイダンスをいただければ幸いです。質問が明確でない場合は、お知らせください。もう一度やり直します。

4

1 に答える 1

0

次のコード スニペットを追加して、パラメーターを追加できます。

request.ContentType="application/x-www-form-urlencoded"

Dim postData As String = "name1="+value1+"&name2="+value2

Dim byteArray As Byte() = Encoding.UTF8.GetBytes(postData)

残りは同じままです。

于 2012-08-30T14:40:51.740 に答える