Próbuję uwierzytelnić się za pomocą interfejsu API Huddle za pomocą emulatora systemu Windows Phone 7. Jednak nie osiągam żadnego sukcesu. Wciąż dostaję "Serwer zdalny zwrócił błąd: NotFound". Próbowałem nawet "osuszyć" mój kod i po prostu wypróbować prostą stronę internetową, np. Google, ale wciąż otrzymujemy ten sam wynik.Wysyłanie HttpWebRequest "Serwer zdalny zwrócił błąd: NotFound" w systemie Windows Phone 7
Mam następujący kod:
string url = "http://www.google.com";
HttpWebRequest client= WebRequest.CreateHttp(new Uri(url)) as HttpWebRequest;
client.AllowReadStreamBuffering = true;
// Call and handle the response.
client.BeginGetResponse(
(asResult) =>
{
Dispatcher.BeginInvoke(
() =>
{
try
{
var response = client.EndGetResponse(asResult);
System.IO.StreamReader reader = new System.IO.StreamReader(response.GetResponseStream());
string responseString = reader.ReadToEnd();
}
catch (WebException failure)
{
throw failure;
}
});
},
null
);
Wykonanie zawsze kończy się w sekcji catch. Jednak po obejrzeniu Fiddler2 wydaje się, że w witrynie google.com nie ma żadnego ruchu. Wydaje się, że prośba nie została złożona.
Widziałem podobny problem tutaj Retrieve XML from https using WebClient/HttpWebRequest - WP7, ale używam standardowego portu, więc nie jestem pewien, czy jest to istotne. Próbowałem również uprościć kod zgodnie z postem, ale bez powodzenia.
Co ciekawe, najbardziej prawdopodobną opcją wydaje się być fakt, że nie mogą mieć możliwości sieci zdefiniowane w moim pliku AppManifestWM.xaml jak za HttpWebRequest Breaks On WP7, ale mój plik AppManifestWM.xaml wydaje się mieć to określono:
<Deployment xmlns="http://schemas.microsoft.com/windowsphone/2009/deployment" AppPlatformVersion="7.0">
<App xmlns="" ProductID="{ac5b5d62-573c-4134-b290-0ad4f678ad7f}" Title="xxx.WindowsPhone7.Client" RuntimeType="Silverlight" Version="1.0.0.0" Genre="apps.normal" Author="xxx.WindowsPhone7.Client author" Description="Sample description" Publisher="xxx.WindowsPhone7.Client publisher">
<IconPath IsRelative="true" IsResource="false">ApplicationIcon.png</IconPath>
<Capabilities>
<Capability Name="ID_CAP_NETWORKING" />
<Capability Name="ID_CAP_LOCATION" />
<Capability Name="ID_CAP_SENSORS" />
<Capability Name="ID_CAP_MICROPHONE" />
<Capability Name="ID_CAP_MEDIALIB" />
<Capability Name="ID_CAP_GAMERSERVICES" />
<Capability Name="ID_CAP_PHONEDIALER" />
<Capability Name="ID_CAP_PUSH_NOTIFICATION" />
<Capability Name="ID_CAP_WEBBROWSERCOMPONENT" />
</Capabilities>
<Tasks>
<DefaultTask Name ="_default" NavigationPage="MainPage.xaml"/>
</Tasks>
<Tokens>
<PrimaryToken TokenID="xxx.WindowsPhone7.ClientToken" TaskName="_default">
<TemplateType5>
<BackgroundImageURI IsRelative="true" IsResource="false">Background.png</BackgroundImageURI>
<Count>0</Count>
<Title>xxx.WindowsPhone7.Client</Title>
</TemplateType5>
</PrimaryToken>
</Tokens>
</App>
</Deployment>
Więc jestem zagubiony. Żądanie w rzeczywistości nie wydaje się występować, co prowadzi do tego, że coś mu zapobiega.
Aktualizacja:
Nic się nie zmieniło, ale pomyślałem, że to ślad stosu może Heko:
System.Net.WebException was unhandled Message=The remote server returned an error: NotFound. StackTrace: at System.Net.Browser.ClientHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult) at System.Net.Browser.ClientHttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at xxx.WindowsPhone7.Client.Views.AddHuddleUserPage.<>c__DisplayClass2.<>c__DisplayClass4.b__1() at System.Reflection.RuntimeMethodInfo.InternalInvoke(RuntimeMethodInfo rtmi, Object obj, BindingFlags invokeAttr, Binder binder, Object parameters, CultureInfo culture, Boolean isBinderDefault, Assembly caller, Boolean verifyAccess, StackCrawlMark& stackMark) at System.Reflection.RuntimeMethodInfo.InternalInvoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, StackCrawlMark& stackMark) at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters) at System.Delegate.DynamicInvokeOne(Object[] args) at System.MulticastDelegate.DynamicInvokeImpl(Object[] args) at System.Delegate.DynamicInvoke(Object[] args) at System.Windows.Threading.DispatcherOperation.Invoke() at System.Windows.Threading.Dispatcher.Dispatch(DispatcherPriority priority) at System.Windows.Threading.Dispatcher.OnInvoke(Object context) at System.Windows.Hosting.CallbackCookie.Invoke(Object[] args) at System.Windows.Hosting.DelegateWrapper.InternalInvoke(Object[] args) at System.Windows.RuntimeHost.ManagedHost.InvokeDelegate(IntPtr pHandle, Int32 nParamCount, ScriptParam[] pParams, ScriptParam& pResult)
Stan jest System.Net.WebExceptionStatus.UnknownError
Dzięki za poświęcony czas .
Dzięki, Mick. Próbowałem IE "applet" w systemie operacyjnym, który działa. Dodałem również kontrolkę WebBrowser do tej samej strony, która również działa dobrze. Nie używam proxy, o ile wiem. –