Я все еще новичок в C #, и я пытаюсь создать приложение для этой страницы, которое сообщит мне, когда я получу уведомление (ответил, прокомментировал и т. д.). Но пока я просто пытаюсь сделать простой вызов api, который получит данные пользователя.
Я использую Visual Studio Express 2012 для создания приложения C #, где (на данный момент) вы вводите свой идентификатор пользователя, поэтому приложение будет делать запрос с идентификатором пользователя и отображать статистику этого идентификатора пользователя.
вот код, в котором я пытаюсь сделать запрос:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//Request library
using System.Net;
using System.IO;
namespace TestApplication
{
class Connect
{
public string id;
public string type;
protected string api = "https://api.stackexchange.com/2.2/";
protected string options = "?order=desc&sort=name&site=stackoverflow";
public string request()
{
string totalUrl = this.join(id);
return this.HttpGet(totalUrl);
}
protected string join(string s)
{
return api + type + "/" + s + options;
}
protected string get(string url)
{
try
{
string rt;
WebRequest request = WebRequest.Create(url);
WebResponse response = request.GetResponse();
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
rt = reader.ReadToEnd();
Console.WriteLine(rt);
reader.Close();
response.Close();
return rt;
}
catch(Exception ex)
{
return "Error: " + ex.Message;
}
}
public string HttpGet(string URI)
{
WebClient client = new WebClient();
// Add a user agent header in case the
// requested URI contains a query.
client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
Stream data = client.OpenRead(URI);
StreamReader reader = new StreamReader(data);
string s = reader.ReadToEnd();
data.Close();
reader.Close();
return s;
}
}
}
класс является объектом, и к нему можно получить доступ из формы, просто проанализировав его идентификатор пользователя и сделав запрос.
Я пробовал много примеров, которые я смотрел в Google, но не понимаю, почему я получаю это сообщение « » на всех направлениях.
Я новичок в этом алгоритме, если кто-нибудь может поделиться книгой или учебником, который показывает, как делать такие вещи (объясняя каждый шаг), я был бы признателен
источник
html
строку+1
наДругой способ - использовать HttpClient следующим образом:
HttpClient против HttpWebRequest
Обновление от 22 июня 2020 г .: не рекомендуется использовать httpclient в блоке using, так как это может вызвать исчерпание порта.
Если вы используете .Net Core 2.1+, рассмотрите возможность использования IHttpClientFactory и такой инъекции в свой код запуска.
источник
HttpClient
Экземпляр используется только один раз за жизнь программы и расположен непосредственно перед выходом из программы. Это совершенно правильно и уместно.Самый простой способ на мой взгляд
ИЛИ
источник
источник