Почему мой код csharp возвращает HTML-код, а не данные JSON, такие как Python или curl - PullRequest
0 голосов
/ 29 октября 2019

Проблема в том, что когда я отправляю запрос POST на URL с python и curl, я получаю данные JSON: [\ "key: value \"]

Как я делаю это с Python:

headers = { "Cookie": "xsrf_token={token}" }

url= "http://url/"

r = requests.post(check_username_url.format(self.username), headers=headers)
data = r.json()

Как я делаю это с помощью Curl:

curl -X POST "http://url/" -H "Cookie:xsrf_token={token}"

Как я делаю это с C #

var handler = new HttpClientHandler();
handler.UseCookies = false; 

using (var httpClient = new HttpClient(handler))
{
    using (var request = new HttpRequestMessage(new HttpMethod("POST"), "http://url/"))
    {
        request.Headers.TryAddWithoutValidation("Cookie", "xsrf_token={token}"); 

        var response = await httpClient.SendAsync(request);
    }
}

, чтобы подвести итог, мой код C # возвращает исходный код HTML, иЯ хочу, чтобы он возвращал данные JSON, такие как Python и Curl. Если кто-нибудь может мне помочь, спасибо!

1 Ответ

0 голосов
/ 29 октября 2019

На самом деле вы не упомянули, чего хотите достичь, но насколько я понимаю, вы хотите извлекать данные JSON из базы данных, если вы ищете такое решение, попробуйте этот код, который может вам помочь:

protected void Page_Load(object sender, EventArgs e)
        {
            string constring = ConfigurationManager.ConnectionStrings["YourConnectionstring"].ConnectionString;
            SqlConnection con = new SqlConnection(constring);
            con.Open();
            SqlCommand cmd = new SqlCommand("select * from Yourtable", con);
            con.Close();
            SqlDataAdapter Da = new SqlDataAdapter(cmd);
            DataTable dt = new DataTable();
            Da.Fill(dt);
            JavaScriptSerializer jsSerializer1 = new JavaScriptSerializer();
            List<Dictionary<string, object>> parentRow = new List<Dictionary<string, object>>();
            Dictionary<string, object> childRow;
            foreach (DataRow row in dt.Rows)
            {
                childRow = new Dictionary<string, object>();
                foreach (DataColumn col in dt.Columns)
                {
                    childRow.Add(col.ColumnName.Trim(), row[col].ToString().Trim());
                }
                parentRow.Add(childRow);
            }
            string jsonString = jsSerializer1.Serialize(parentRow);
            jsonString = Regex.Replace(jsonString, @"\""\\/Date\((-?\d+)\)\\/\""", "$1");
            Response.Write("{\"data\":");
            Response.Write(jsonString);
            Response.Write("");
            Response.Write("");
            Response.Write("}");
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...