Im, запрашивающий на веб-сервере с Basic Authent, и сервер должен вернуть cookie.It делает, когда я использую веб-браузер, я могу проверить его в FiddlerProxy ... Когда я отлаживаю свой код, response.cookie остается null. Вот мои code.Thanks за помощьПочему свойство cookie моего объекта Httpwebresponse остается null? (WP8)
public void ConnexionNT(string password,string user)
{
CookieContainer _cookiecontainer=new CookieContainer();
try
{
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(URL_CONNEXION);
request.Method = "GET";
request.Credentials = new NetworkCredential(user, password, domain);
request.CookieContainer = _cookiecontainer;
request.BeginGetResponse(new AsyncCallback(GetResponse), request);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void GetResponse(IAsyncResult MyresponseAsync)
{
HttpWebRequest request = (HttpWebRequest)MyresponseAsync.AsyncState;
HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(MyresponseAsync);
if (response.Cookies!=null) //REMAINS NULL
{ //SAVE COOKIE}
}
EDIT
Если я переместить decalrtion Cookiecontainer на уровне класса печенье свойство HttpWebResponse не нуль больше ...
EDIT2
Правильно ли этот код для получения файлов cookie с сервера?
public void ConnexionNT(string password,string user)
{
try
{
HttpWebRequest request= (HttpWebRequest)HttpWebRequest.Create(URL_CONNEXION);
request.Method = "GET";
request.Credentials = new NetworkCredential(user, password, domain);
request.CookieContainer = _cookiecontainer;
request.BeginGetResponse(new AsyncCallback(GetResponse),request);
}
catch(HttpRequestException)
{
MessageBox.Show("Un problème de connexion avec le serveur a eu lieu.", "Echec Authentification", MessageBoxButton.OK);
}
catch (Exception)
{
MessageBox.Show("Une erreur a eu lieu","Echec Authentification", MessageBoxButton.OK);
}
}
private void GetResponse(IAsyncResult MyresponseAsync)
{
HttpWebRequest request = (HttpWebRequest)MyresponseAsync.AsyncState;
if (request != null)
{
try
{
HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(MyresponseAsync);
//Not null but EMPTY WHY? if (response.Cookies != null)
{
using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication())
{
using (IsolatedStorageFileStream isfs = isf.OpenFile("CookiesFile", FileMode.Create, FileAccess.Write))
{
using (StreamWriter sw = new StreamWriter(isfs))
{
foreach (Cookie cookieValue in response.Cookies)
{
sw.WriteLine("Cookie: " + cookieValue.ToString());
}
sw.Close();
}
}
//declenche l'event pour lancer la navigation sur la vue "codepin"
if (event_GetCookie != null && response.Cookies.Count>0)
event_GetCookie.Invoke();
}
}
}
Я не понимаю ... Я поставил печенье контейнер в HttpWebRequest ... CookieContainer _cookiecontainer = новый CookieContainer(); request.CookieContainer = _cookiecontainer; .. я упускаю что-то? –
Можете ли вы попытаться переместить декларацию CookieContainer на уровень класса? –
Теперь свойство cookie не пустое, но остается пустым ... и я не могу проверить обмены между клиентом и сервером с помощью эмулятора Windows Phone (FiddlerProxy не работает) спасибо за помощь ур –