C# 端口webbrowser控件,表单是否提交到httpwebrequest?

C# 端口webbrowser控件,表单是否提交到httpwebrequest?,c#,httpwebrequest,webbrowser-control,C#,Httpwebrequest,Webbrowser Control,我想将web浏览器表单提交移植到httpwebrequest表单。 这很简单: wb.Document.GetElementsByTagName("input")[0].SetAttribute("value", "image.png"); wb.Document.GetElementsByTagName("input")[1].SetAttribute("value", ImageToBase64(p.Image)); wb.Document.GetElementsByTagName("for

我想将web浏览器表单提交移植到httpwebrequest表单。 这很简单:

wb.Document.GetElementsByTagName("input")[0].SetAttribute("value", "image.png");
wb.Document.GetElementsByTagName("input")[1].SetAttribute("value", ImageToBase64(p.Image));
wb.Document.GetElementsByTagName("form")[0].InvokeMember("submit");
我尝试了以下操作,但是图像文件不知怎么被刷新了

string param = "name=image.jpg&file=" + ImageToBase64(p.Image);
post(param, "urlToPHPfileShown");

public string post(string param, string url)
{

     HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);
     string postArgs = param;

     req.Method = "POST";
     req.CookieContainer = new CookieContainer();

     req.ContentType = @"application/x-www-form-urlencoded";
     byte[] buffer = System.Text.ASCIIEncoding.UTF8.GetBytes(postArgs);
     req.ContentLength = buffer.Length;
     req.AllowAutoRedirect = true;
     using (Stream reqStream = req.GetRequestStream())
     {
          reqStream.Write(buffer, 0, buffer.Length);
          reqStream.Close();
     }
      HttpWebResponse response = (HttpWebResponse)req.GetResponse();
      using (Stream respStream = response.GetResponseStream())
      {
          using (StreamReader sr = new StreamReader(respStream))
          {
               string s = sr.ReadToEnd();
               return s;
           }
      }
}
编辑: 我只是和WireShark一起看了一下帖子。 正在工作的那个似乎有很多%2F而不是/(斜杠)。
那么可能存在字符集问题吗?

这是一个编码问题。研究Url编码或Url转义。