C# HttpWebRequest 上传图片的有关问题
C# HttpWebRequest 上传图片的问题
C#语言 winform 做 模拟登陆到阿里巴巴国际站进行产品的批量发布, 发布产品图片上传返回的是{"code":"1"}上传失败,直接登入速卖通发布的时候 通过httpwatch抓取返回的内容是:{"height":"762","hash":"b46dfd6df231a5ae03df29854da57ee2","width":"1000","code":"0","fs_url":"/common/upload/140/193/039/375/hz-fileserver-upload-05_hw1d3fup.jpg","url":"http://upload.alibaba.com/common/upload/140/193/039/375/hz-fileserver-upload-05_hw1d3fup.jpg?size=100487&height=762&width=1000&hash=b46dfd6df231a5ae03df29854da57ee2","size":"100487"}
流的内容:


以下是我的代码:
通过webbrowser 获取cookie :
public CookieContainer getCookieContainer(WebBrowser webBrowser1)
{
CookieContainer myCookieContainer = new CookieContainer();
string cookieStr = webBrowser1.Document.Cookie;
string[] cookstr = cookieStr.Split(';');
foreach (string cookie in cookstr)
{
string name = cookie.Split('=')[0];
string value = cookie.Substring(name.Length + 1);
string domain = "";
if (name.Trim() == "me_p_info")
{
domain = ".posting.aliexpress.com";
}
else if (name.Trim() == "JSESSIONID")
{
domain = ".posting.aliexpress.com";
}
else {
domain = ".aliexpress.com";
}
string path = "/";
myCookieContainer.Add(new Cookie(name.Trim(), value.Trim(), path, domain));
}
return myCookieContainer;
}
HttpWebRequest 设置 cookie 且post 提交
public string createFilePost(string file, string url, CookieContainer cookieContainer)
{
DateTime timeStamp = new DateTime(1970, 1, 1); //得到1970年的时间戳
long a = (DateTime.UtcNow.Ticks - timeStamp.Ticks) / 10000; //注意这里有时区问题,用now就
string httpWebContent = string.Empty;
string ksuploadboundary = "----ksuploadboundary" + a.ToString();
HttpWebRequest uploadRequest = (HttpWebRequest)WebRequest.Create(url);//url为上传的地址
uploadRequest.ContentType = "multipart/form-data;boundary=" + ksuploadboundary;
uploadRequest.Method = "POST";
uploadRequest.Accept = "*/*";
uploadRequest.KeepAlive = true;
uploadRequest.Headers.Add("Accept-Language","zh-CN");
uploadRequest.Headers.Add("Accept-Encoding", "gzip,deflate");
uploadRequest.Referer = "http://posting.aliexpress.com/style/js/post/app/editor/uploader/flash.swf";
C#语言 winform 做 模拟登陆到阿里巴巴国际站进行产品的批量发布, 发布产品图片上传返回的是{"code":"1"}上传失败,直接登入速卖通发布的时候 通过httpwatch抓取返回的内容是:{"height":"762","hash":"b46dfd6df231a5ae03df29854da57ee2","width":"1000","code":"0","fs_url":"/common/upload/140/193/039/375/hz-fileserver-upload-05_hw1d3fup.jpg","url":"http://upload.alibaba.com/common/upload/140/193/039/375/hz-fileserver-upload-05_hw1d3fup.jpg?size=100487&height=762&width=1000&hash=b46dfd6df231a5ae03df29854da57ee2","size":"100487"}
流的内容:
以下是我的代码:
通过webbrowser 获取cookie :
public CookieContainer getCookieContainer(WebBrowser webBrowser1)
{
CookieContainer myCookieContainer = new CookieContainer();
string cookieStr = webBrowser1.Document.Cookie;
string[] cookstr = cookieStr.Split(';');
foreach (string cookie in cookstr)
{
string name = cookie.Split('=')[0];
string value = cookie.Substring(name.Length + 1);
string domain = "";
if (name.Trim() == "me_p_info")
{
domain = ".posting.aliexpress.com";
}
else if (name.Trim() == "JSESSIONID")
{
domain = ".posting.aliexpress.com";
}
else {
domain = ".aliexpress.com";
}
string path = "/";
myCookieContainer.Add(new Cookie(name.Trim(), value.Trim(), path, domain));
}
return myCookieContainer;
}
HttpWebRequest 设置 cookie 且post 提交
public string createFilePost(string file, string url, CookieContainer cookieContainer)
{
DateTime timeStamp = new DateTime(1970, 1, 1); //得到1970年的时间戳
long a = (DateTime.UtcNow.Ticks - timeStamp.Ticks) / 10000; //注意这里有时区问题,用now就
string httpWebContent = string.Empty;
string ksuploadboundary = "----ksuploadboundary" + a.ToString();
HttpWebRequest uploadRequest = (HttpWebRequest)WebRequest.Create(url);//url为上传的地址
uploadRequest.ContentType = "multipart/form-data;boundary=" + ksuploadboundary;
uploadRequest.Method = "POST";
uploadRequest.Accept = "*/*";
uploadRequest.KeepAlive = true;
uploadRequest.Headers.Add("Accept-Language","zh-CN");
uploadRequest.Headers.Add("Accept-Encoding", "gzip,deflate");
uploadRequest.Referer = "http://posting.aliexpress.com/style/js/post/app/editor/uploader/flash.swf";