0
好了,所以我有一个功能,我写道,应该允许我使用cookie数据发布。问题在于我在亚马逊登录页面上进行了测试,并且一直在回复说我需要启用Cookie。下面的代码C#后数据的Cookie不工作
public string DoPost(String url, PostData data, CookieContainer cookies)
{
HttpWebRequest objWebRequest = (HttpWebRequest)WebRequest.Create(url);
objWebRequest.CookieContainer = cookies;
objWebRequest.AllowAutoRedirect = true;
objWebRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";
if(data != null)
{
String post = data.ToString();
objWebRequest.Method = "POST";
objWebRequest.ContentLength = post.Length;
objWebRequest.ContentType = "application/x-www-form-urlencoded";
// Post to the login form.
using(StreamWriter swRequestWriter = new StreamWriter(objWebRequest.GetRequestStream()))
{
swRequestWriter.Write(post);
}
}
// Get the response.
HttpWebResponse objWebResponse =
(HttpWebResponse)objWebRequest.GetResponse();
// Read the response
using(StreamReader srResponseReader = new StreamReader(objWebResponse.GetResponseStream()))
{
string strResponseData = srResponseReader.ReadToEnd();
return strResponseData;
}
}
我这样称呼它
String action = "https://www.amazon.com/gp/flex/sign-in/select.html";
String s = DoPost(action, null, Cookies);
饼干在我班上建筑工创建这样
CookieContainer Cookies;
public Constructz0r()
{
Cookies = new CookieContainer();
}
的事情是,我还没有张贴任何发布数据,我只是去页面,它说我的cookies没有启用,虽然我觉得我已经做了它在DoPost写。
我已经使用这个实现的WebClient
public class CookieWebClient : WebClient
{
private CookieContainer _cookieContainer = new CookieContainer();
protected override WebRequest GetWebRequest(Uri address)
{
WebRequest request = base.GetWebRequest(address);
if (request is HttpWebRequest)
{
(request as HttpWebRequest).CookieContainer = _cookieContainer;
}
return request;
}
}
,并调用它像这样
using(CookieWebClient ck = new CookieWebClient())
{
String s = ck.DownloadString(action);
}
甚至尝试它仍然告诉我,没有启用Cookie。
正确的,但具有与云主机做的,什么我开发无关与AWS。 –
@ kelton52,他们有SOAP网络服务:http://flyingpies.wordpress.com/2009/08/01/17/对不起,我在我的答案中发布了错误的链接。现在应该修复。 –
这似乎比我需要的方式,再加上我不使用wpf。我甚至没有尝试登录,我只需要亚马逊意识到我正在使用cookie。 –