Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows phone 7 向API发送多个请求时出现webclient I/O错误_Windows Phone 7_C# 4.0_Silverlight 4.0 - Fatal编程技术网

Windows phone 7 向API发送多个请求时出现webclient I/O错误

Windows phone 7 向API发送多个请求时出现webclient I/O错误,windows-phone-7,c#-4.0,silverlight-4.0,Windows Phone 7,C# 4.0,Silverlight 4.0,我想做一个Twitter情绪分析Windows Phone应用程序 该应用程序根据用户输入的查询词检索所有相关tweet。例如,如果我在输入搜索框中输入“Windows Phone”,结果将显示包含“Windows Phone”术语的所有推文 这是代码(我从中获得) 将POST数据上载到API中 public void UploadData(Twit tweetPerSend) { if (NetworkInterface.GetIsNetworkAvailabl

我想做一个Twitter情绪分析Windows Phone应用程序

该应用程序根据用户输入的查询词检索所有相关tweet。例如,如果我在输入搜索框中输入“Windows Phone”,结果将显示包含“Windows Phone”术语的所有推文

这是代码(我从中获得)

将POST数据上载到API中

    public void UploadData(Twit tweetPerSend)
    {
        if (NetworkInterface.GetIsNetworkAvailable())
        {
            chatterbox.Headers[HttpRequestHeader.ContentType] = "application/x-www-                       form-urlencoded";
            chatterbox.Headers["X-Mashape-Authorization"] = "MXBxYmptdjhlbzVnanJnYndicXNpN2NwdWlvMWE1OjA0YTljMWJjMDg4MzVkYWY2YmIzMzczZWFkNDlmYWRkNDYzNGU5NmI=";

            var Uri = new Uri("https://chatterboxco-sentiment-analysis-for-social-media---nokia.p.mashape.com/sentiment/current/classify_text/");

            StringBuilder postData = new StringBuilder();
            postData.AppendFormat("{0}={1}", "lang", HttpUtility.UrlEncode("en"));
            postData.AppendFormat("&{0}={1}", "text", HttpUtility.UrlEncode(tweetPerSend.DecodedText));
            postData.AppendFormat("&{0}={1}", "exclude", HttpUtility.UrlEncode("is")); // disesuaikan 
            postData.AppendFormat("&{0}={1}", "detectlang", HttpUtility.UrlEncode("0"));
            chatterbox.UploadStringAsync(Uri, "POST", postData.ToString());
            chatterbox.UploadStringCompleted += new UploadStringCompletedEventHandler(chatterbox_UploadStringCompleted);

        }
    }


    void chatterbox_UploadStringCompleted(object sender, UploadStringCompletedEventArgs e)
    {
        var chatterbox = sender as WebClient;
        chatterbox.UploadStringCompleted -= chatterbox_UploadStringCompleted;
        string response = string.Empty;
        if (!e.Cancelled)
        {
            response = HttpUtility.UrlDecode(e.Result);
            nilaiKlasifikasi = ParsingHasil(response);
            MessageBox.Show(nilaiKlasifikasi.ToString()); //just testing
            //textBlock1.Text = response;
        }
    }

    private double ParsingHasil(String response)
    {

        var result = Regex.Match(@response, @"(?<=""value"": )(-?\d+(\.\d+)?)(?=,|$)");
        Debug.WriteLine(result);
        double hasil = Convert.ToDouble(result.ToString());
        //return Convert.ToInt32(result);
        return hasil;

    }
public void上传数据(Twit-tweetPerSend)
{
if(NetworkInterface.GetIsNetworkAvailable())
{
chatterbox.Headers[HttpRequestHeader.ContentType]=“应用程序/x-www-表单urlencoded”;
chatterbox.Headers[“X-Mashape-Authorization”]=“mxbxymptjhlbzvnanjnyndicxnpn2nwdwlvmwe1oja0ytljmwjjjmdg4mzvkywy2ymizcmzczzwfkndlmywrkndyzngu5nmi=”;
var Uri=新的Uri(“https://chatterboxco-sentiment-analysis-for-social-media---nokia.p.mashape.com/sentiment/current/classify_text/");
StringBuilder postData=新建StringBuilder();
appendData.AppendFormat(“{0}={1}”,“lang”,HttpUtility.UrlEncode(“en”);
appendData.AppendFormat(&{0}={1}”,“text”,HttpUtility.UrlEncode(tweetPerSend.DecodedText));
postData.AppendFormat(&{0}={1}”,“exclude”,HttpUtility.UrlEncode(“is”);//disesuaikan
appendData.AppendFormat(“&{0}={1}”,“detectlang”,HttpUtility.UrlEncode(“0”);
UploadStringAsync(Uri,“POST”,postData.ToString());
chatterbox.UploadStringCompleted+=新的UploadStringCompletedEventHandler(chatterbox\u UploadStringCompleted);
}
}
void chatterbox_UploadStringCompleted已完成(对象发送方,UploadStringCompletedEventArgs e)
{
var chatterbox=作为网络客户端的发送方;
chatterbox.UploadStringCompleted-=chatterbox\u UploadStringCompleted;
字符串响应=string.Empty;
如果(!e.取消)
{
response=HttpUtility.UrlDecode(e.Result);
nilaiKlasifikasi=Parsingasil(响应);
MessageBox.Show(nilaiklasifkasi.ToString());//只是测试
//textBlock1.Text=响应;
}
}
专用双PARSINGASIL(字符串响应)
{

var result=Regex.Match(@response,@)(?您必须一次同步执行一个UploadStringAsync。(即,在UploadStringCompleted处理程序中链执行下一个UploadStringAsync)


或者,为每个UploadStringAsync创建一个新的WebClient。

在哪一行出现此错误/异常?@PeterRitchie:在这一行“chatterbox.UploadStringAsync(Uri,“POST”,postData.ToString());”调试代码后,我意识到,连接请求api
foreach的方法(twitterResults.results中的Twit Tweet)thisApp.klasifikasi.UploadData(推特);//请求
,尽管过去的过程尚未完成,但仍会继续触发..如何解决此问题?如我的回答中所述,您必须等到调用UploadStringCompleted处理程序后再调用下一个UploadDataHow知道UploadStringCompleted是否被调用/完成?您有处理上载的代码tringCompleted事件——这就是你知道的。
           TwitterService.Search(
            text,
           (items) => { PositiveList.ItemsSource = items; },
           (exception) => { MessageBox.Show(exception.Message); },
           null
           );
    public void UploadData(Twit tweetPerSend)
    {
        if (NetworkInterface.GetIsNetworkAvailable())
        {
            chatterbox.Headers[HttpRequestHeader.ContentType] = "application/x-www-                       form-urlencoded";
            chatterbox.Headers["X-Mashape-Authorization"] = "MXBxYmptdjhlbzVnanJnYndicXNpN2NwdWlvMWE1OjA0YTljMWJjMDg4MzVkYWY2YmIzMzczZWFkNDlmYWRkNDYzNGU5NmI=";

            var Uri = new Uri("https://chatterboxco-sentiment-analysis-for-social-media---nokia.p.mashape.com/sentiment/current/classify_text/");

            StringBuilder postData = new StringBuilder();
            postData.AppendFormat("{0}={1}", "lang", HttpUtility.UrlEncode("en"));
            postData.AppendFormat("&{0}={1}", "text", HttpUtility.UrlEncode(tweetPerSend.DecodedText));
            postData.AppendFormat("&{0}={1}", "exclude", HttpUtility.UrlEncode("is")); // disesuaikan 
            postData.AppendFormat("&{0}={1}", "detectlang", HttpUtility.UrlEncode("0"));
            chatterbox.UploadStringAsync(Uri, "POST", postData.ToString());
            chatterbox.UploadStringCompleted += new UploadStringCompletedEventHandler(chatterbox_UploadStringCompleted);

        }
    }


    void chatterbox_UploadStringCompleted(object sender, UploadStringCompletedEventArgs e)
    {
        var chatterbox = sender as WebClient;
        chatterbox.UploadStringCompleted -= chatterbox_UploadStringCompleted;
        string response = string.Empty;
        if (!e.Cancelled)
        {
            response = HttpUtility.UrlDecode(e.Result);
            nilaiKlasifikasi = ParsingHasil(response);
            MessageBox.Show(nilaiKlasifikasi.ToString()); //just testing
            //textBlock1.Text = response;
        }
    }

    private double ParsingHasil(String response)
    {

        var result = Regex.Match(@response, @"(?<=""value"": )(-?\d+(\.\d+)?)(?=,|$)");
        Debug.WriteLine(result);
        double hasil = Convert.ToDouble(result.ToString());
        //return Convert.ToInt32(result);
        return hasil;

    }