0

複雑な HTTP POST リクエストを Web サービスに送信しようとしています。Web サービスは VS2008 を使用して作成されており、VS を設定して、SOAP インターフェイスと一緒に HTTP POST および GET インターフェイスを作成できます。

現在、リクエストは、文字列パラメーター (ユーザー名、ファイルの説明など) と、Base64Binary として表されるファイル自体の両方を求めています。

VS (asp.net Web サービスではない) で Web サービスを作成し、HTTP POST 要求を受け入れるように設定する場合、文字列パラメーターとバイナリ データの両方を含む HTTP POST 要求を送信できますか?

4

1 に答える 1

0

メソッドを使用してバイトを取得し、base64 文字列に変換できますConvert.ToBase64String()。したがって、次のようになります。

string base64 = Convert.ToBase64String(File.ReadAllBytes("yourfile.ext"));

送信方法について話している場合は、次HttpWebRequestのように使用できます。

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("service.asmx");
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
using (Stream post = request.GetRequestStream())
{
    string querystring =  // note you must encode that values
                "name=" + HttpUtility.UrlEncode(name) +
               "&desc=" + HttpUtility.UrlEncode(description) +
               "&data=" + HttpUtility.UrlEncode(base64);
    byte[] data = Encoding.UTF8.GetBytes(querystring);
    post.Write(data, 0, data.Length);
}
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Console.WriteLine(new StreamReader(response.GetResponseStream()).ReadToEnd());
于 2009-11-17T12:28:19.777 に答える