基本的に私はファイルをアップロードできるサーバーを持っていますが、ログインが必要なので、アップロードするファイルだけでなく、ユーザー名とパスワードも文字列として送信し、からの応答を読み取る必要があります。サーバ。最善を尽くしましたが、「[Begin]GetResponseを呼び出す前にContentLengthバイトをリクエストストリームに書き込む必要があります」というエラーが表示されます。
画像をアップロードするための私のコード:
string ImgFile = Path.GetTempFileName();
img.Save(ImgFile);
byte[] LoginBytes = ASCIIEncoding.ASCII.GetBytes("username=" + Username + "&password=" + Password);
byte[] ImageBytes = File.ReadAllBytes(ImgFile);
int ByteLen = LoginBytes.Length + ImageBytes.Length;
WebRequest ReqResponse = WebRequest.Create(url);
ReqResponse.Credentials = CredentialCache.DefaultCredentials;
ReqResponse.Proxy = WebRequest.DefaultWebProxy;
ReqResponse.Proxy.Credentials = CredentialCache.DefaultCredentials;
ReqResponse.Method = "POST";
ReqResponse.ContentType = "application/x-www-form-urlencoded";
ReqResponse.ContentLength = ByteLen;
ReqResponse.GetRequestStream().Write(LoginBytes, 0, LoginBytes.Length);
ReqResponse.GetRequestStream().Write(ImageBytes, 0, ImageBytes.Length);
string response = (new StreamReader(ReqResponse.GetResponse().GetResponseStream()).ReadToEnd());
MessageBox.Show(response);