使用Web请求在客户端获取和显示字符串

时间:2018-10-29 06:43:51

标签: c# webforms httpwebrequest

因此,使用下面的代码,我设法获取了第三方网站中的字符串,并使用表将其显示在项目的客户端。但是问题在于,所有字符串上的每个字母都分开,如下图所示。

enter image description here

下面是我使用的代码,

public void Main()
    {
        WebRequest request = WebRequest.Create(
          "http://www.example.com");
        request.Credentials = CredentialCache.DefaultCredentials;
        WebResponse response = request.GetResponse();
        Console.WriteLine(((HttpWebResponse)response).StatusDescription);
        Stream dataStream = response.GetResponseStream();
        StreamReader reader = new StreamReader(dataStream);
        var responseFromServer = reader.ReadToEnd();
        Console.WriteLine(responseFromServer);
        reader.Close();
        response.Close();
        var responseList = responseFromServer.Split('\n').ToList();
        var remaining = sqlList.Where(x => !responseList.Contains(x)).ToList();   
        var remaining1 = responseList.Where(x => !sqlList.Contains(x)).ToList();  
        var table = new Table();
        foreach(var row in remaining1)
        {
            var tableRow = new TableRow();
            foreach (var cell in row.Select(item => new TableCell { Text = item.ToString()}))
            {
                tableRow.Cells.Add(cell);
            }
            table.Rows.Add(tableRow);
        }
        Page.Controls.Add(table);
    }

我该如何解决?预先感谢。

1 个答案:

答案 0 :(得分:1)

如果收到字符串列表,则可以使用文字控制:

var label = new Literal() { Mode = LiteralMode.PassThrough };
label.Text = string.Join("<br />", remaining1);                
Controls.Add(label);

如果您体内收到html,则需要对其进行转义:

foreach (var line in remaining1)
{
     var label = new Literal() { Mode = LiteralMode.Encode };
     label.Text = line;                
     Controls.Add(label);
     Controls.Add(new Literal(){Mode = LiteralMode.PassThrough,Text = "<br />"});
}