C# 如何解决这个问题;远程服务器返回错误:NotFound";?

C# 如何解决这个问题;远程服务器返回错误:NotFound";?,c#,windows-phone-8,httpwebrequest,C#,Windows Phone 8,Httpwebrequest,我试图解决这个问题,但不幸的是没有什么对我有帮助。我在下面包含了带有***错误点的代码。我需要帮助,请告诉我代码有什么问题 代码: public MainViewModel() { System.Uri myUri = new System.Uri("http://192.168.0.103/new_ringtone"); HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequest.Create(myUri); m

我试图解决这个问题,但不幸的是没有什么对我有帮助。我在下面包含了带有***错误点的代码。我需要帮助,请告诉我代码有什么问题

代码:

public MainViewModel()
{

    System.Uri myUri = new System.Uri("http://192.168.0.103/new_ringtone");
    HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequest.Create(myUri);
    myRequest.Method = "POST";
    myRequest.ContentType = "application/json;charset=utf-8";
    myRequest.Headers["user-agent"] = "RingtoneApplication";
    myRequest.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), myRequest);          
}

void GetRequestStreamCallback(IAsyncResult callbackResult)
{
    HttpWebRequest myRequest = (HttpWebRequest)callbackResult.AsyncState;
    // End the stream request operation
    Stream postStream = myRequest.EndGetRequestStream(callbackResult);
    // Create the post data
    string currentDateTime = DateTime.Now.ToShortDateString();
    string deviceName = Microsoft.Phone.Info.DeviceStatus.DeviceName;
    string osVersion =Environment.OSVersion.Version.ToString();

    Dictionary<string, object> userInfoDictionary = new Dictionary<string, object>();
    userInfoDictionary.Add("DeviceName", deviceName);
    userInfoDictionary.Add("OSVersion", osVersion);
    userInfoDictionary.Add("DateTime", currentDateTime);
    Dictionary<string, object> user = new Dictionary<string, object>();
    user.Add("User", userInfoDictionary);

    Dictionary<string, string> ringtoneappDictionary = new Dictionary<string, string>();
    ringtoneappDictionary.Add("Ringtoneapp", "category_id");

    Dictionary<string, string> userAgent = new Dictionary<string, string>();
    userAgent.Add("UserAgent", "RingtoneApplication");

    Object[] dataArray = new object[2];
    dataArray[0] = user;
    dataArray[1] = ringtoneappDictionary;
    //dataArray[2] = userAgent;

    Dictionary<string, Array> data = new Dictionary<string, Array>();
    data.Add("Data", dataArray);

    string jsonData = JsonConvert.SerializeObject(data);

    var token = CreateToken(jsonData, GlobalClass.SecretKey);



    string postData = "method=getRintoneCategories&data="+jsonData+"&Token="+token;
    byte[] byteArray = Encoding.UTF8.GetBytes(postData);
    // Add the post data to the web request
    postStream.Write(byteArray, 0, byteArray.Length);
    postStream.Close();
    // Start the web request
    myRequest.BeginGetResponse(new AsyncCallback(GetResponsetStreamCallback), myRequest);
}

void GetResponsetStreamCallback(IAsyncResult callbackResult)
{
    HttpWebRequest request = (HttpWebRequest)callbackResult.AsyncState;
    ***HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(callbackResult);***
    using (StreamReader httpWebStreamReader = new StreamReader(response.GetResponseStream()))
    {
        string result = httpWebStreamReader.ReadToEnd();
        //For debug: show results
        Debug.WriteLine(result);
    }
}
public主视图模型()
{
System.Uri myUri=新的System.Uri(“http://192.168.0.103/new_ringtone");
HttpWebRequest myRequest=(HttpWebRequest)HttpWebRequest.Create(myUri);
myRequest.Method=“POST”;
myRequest.ContentType=“application/json;charset=utf-8”;
myRequest.Headers[“用户代理”]=“RingtoneApplication”;
BeginGetRequestStream(新的异步回调(GetRequestStreamCallback),myRequest);
}
void GetRequestStreamCallback(IAsyncResult callbackResult)
{
HttpWebRequest myRequest=(HttpWebRequest)callbackResult.AsyncState;
//结束流请求操作
Stream postStream=myRequest.EndGetRequestStream(callbackResult);
//创建post数据
string currentDateTime=DateTime.Now.ToSortDateString();
字符串deviceName=Microsoft.Phone.Info.DeviceStatus.deviceName;
字符串osVersion=Environment.osVersion.Version.ToString();
Dictionary userInfoDictionary=新字典();
添加(“DeviceName”,DeviceName);
添加(“OSVersion”,OSVersion);
添加(“日期时间”,currentDateTime);
字典用户=新字典();
添加(“用户”,userInfoDictionary);
Dictionary ringtoneappDictionary=新字典();
添加(“Ringtoneapp”,“category_id”);
Dictionary userAgent=newdictionary();
添加(“userAgent”、“RingtoneApplication”);
Object[]dataArray=新对象[2];
dataArray[0]=用户;
dataArray[1]=ringtoneappDictionary;
//dataArray[2]=用户代理;
字典数据=新字典();
添加(“数据”,数据数组);
字符串jsonData=JsonConvert.SerializeObject(数据);
var token=CreateToken(jsonData,GlobalClass.SecretKey);
string postData=“method=getRintoneCategories&data=“+jsonData+”&Token=“+Token;
byte[]byteArray=Encoding.UTF8.GetBytes(postData);
//将post数据添加到web请求
Write(byteArray,0,byteArray.Length);
postStream.Close();
//启动web请求
BeginGetResponse(新的AsyncCallback(GetResponsetStreamCallback),myRequest);
}
void GetResponseStreamCallback(IAsyncResult callbackResult)
{
HttpWebRequest请求=(HttpWebRequest)callbackResult.AsyncState;
***HttpWebResponse=(HttpWebResponse)request.EndGetResponse(callbackResult)***
使用(StreamReader httpWebStreamReader=newstreamreader(response.GetResponseStream())
{
字符串结果=httpWebStreamReader.ReadToEnd();
//用于调试:显示结果
Debug.WriteLine(结果);
}
}
例外情况:

{System.Net.WebException: The remote server returned an error: NotFound. ---> System.Net.WebException: The remote server returned an error: NotFound.
at System.Net.Browser.ClientHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult)
at System.Net.Browser.ClientHttpWebRequest.<>c__DisplayClasse.<EndGetResponse>b__d(Object sendState)
at System.Net.Browser.AsyncHelper.<>c__DisplayClass1.<BeginOnUI>b__0(Object sendState)
   --- End of inner exception stack trace ---
at System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod, Object state)
at System.Net.Browser.ClientHttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
at Ringtone.ViewModel.MainViewModel.GetResponsetStreamCallback(IAsyncResult callbackResult)
at System.Net.Browser.ClientHttpWebRequest.<>c__DisplayClass1d.<InvokeGetResponseCallback>b__1b(Object state2)}
{System.Net.WebException:远程服务器返回错误:NotFound。-->System.Net.WebException:远程服务器返回错误:NotFound。
位于System.Net.Browser.ClientHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult)
在System.Net.Browser.ClientHttpWebRequest.c_uuDisplayClasse.b_uud(对象发送状态)中
在System.Net.Browser.AsyncHelper.c__DisplayClass1.b__0(对象发送状态)中
---内部异常堆栈跟踪的结束---
位于System.Net.Browser.AsyncHelper.BeginNoui(SendOrPostCallback beginMethod,对象状态)
位于System.Net.Browser.ClientHttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
在Ringtone.ViewModel.MainViewModel.GetResponsetStreamCallback(IAsyncResult callbackResult)中
在System.Net.Browser.ClientHttpWebRequest.c__DisplayClassId.b__1b(对象状态2)}

您是否检查了此项,以根据您的需要转换正确的数据。如果url上没有标题信息,则无法提供预期的数据。如果我把它放在浏览器“注意:未定义的索引:第35行的/Applications/XAMPP/xamppfiles/htdocs/new_ringtone/index.php中的数据”{“status”:400,“status_messages”:“无效请求”,“数据”:null}”使用telerik fiddler使web服务成为一个请求并获得结果。并查看它是否符合预期。在我看来,该服务似乎无法正常工作,正如异常所说,如果我发现代码中的错误,这将更有帮助。实际上,我不知道如何制作web服务。