0
    public static Task<string> GetData(string url, string data)
    {
        UriBuilder fullUri = new UriBuilder(url);

        if (!string.IsNullOrEmpty(data))
            fullUri.Query = data;

        WebClient client = new WebClient();

        var tcs = new TaskCompletionSource<string>();

        client.DownloadStringCompleted += (s, args) =>
        {
            if (args.Error != null)
                tcs.TrySetException(args.Error); // HERE
            else if (args.Cancelled)
                tcs.TrySetCanceled();
            else
                tcs.TrySetResult(args.Result);
        };

        client.DownloadStringAsync(fullUri.Uri);

        return tcs.Task;
    }

上記のメソッドは、「//Here」でエラーになります...

ここに画像の説明を入力

問題は、URL とパラメーターが正しいと信じていることです。独自の API ページを作成する以外に、最初に確認する必要がある一般的なことはありますか?

4

1 に答える 1

0

WebClient.DownloadStringTaskAsyncまず、独自のメソッドをラップする代わりに使用できます。

そうは言っても、例外は単純に から返された例外ですWebClient。これInnerExceptionは非常に明確です - サーバーは NotFound を返しました (つまり、404 エラー コード)。例外を設定するコードは完全に有効に見えます。

于 2013-09-23T23:29:35.817 に答える