База данных MySQL, управляемая PHP для приложений C#

Я пытаюсь создать приложение C#, которое подключается к базе данных MySQL через PHP. Мой код PHP следующий:

<?php
require_once(dirname(__FILE__).'/dbconnect.php');

if (isset($_GET['name']) && isset($_GET['number']))
{
    //Get the POST variables
    $mName = $_GET['name'];
    $mNumber = $_GET['number'];

    //Insert new contact into database
    $sql = "INSERT INTO `products`(`name`) VALUES (\"" . $mName . "\")";

    echo $sql;

    //Execute query
    $stmt = mysqli_query($con, $sql); 
    if (!$stmt)
    {   
        echo 'Query Failed';     
    }
    else
    {
        echo "Query Successful";
    }
}

mysqli_close($con);
?>

В моем приложении C# я использую WebClient и метод DownloadString для выполнения запроса.

Uri uri = new Uri("http://manoest.dk/UpdateValue.php?name=John&number=23");

WebClient client = new WebClient();
client.Headers.Add("Content-Type", "text/html; charset=iso-8859-1");
//client.Headers.Add("Accept", "text/plain");
client.Headers.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");


var streng = client.DownloadString(uri);

Я пробовал много разных вещей, но каждый раз получаю ошибку 406 (неприемлемо). Я предполагаю, что проблема в заголовках, но я попробовал и не вижу проблемы.

Если сервер не может ответить в вашем формате «Принять» - он отвечает 406. Вам необходимо проверить заголовок «Принять».

Vasyl Zhuryk 19.07.2018 23:11

Спасибо, я это узнал, но как мне узнать, какой заголовок Accept использовать. При запросе из моего приложения C# я пробовал много разных заголовков accept, но безуспешно.

MStone 19.07.2018 23:15

Также вам нужно удалить "Content-Type", потому что это заголовок ответа

Vasyl Zhuryk 19.07.2018 23:17

Еще раз спасибо. Я попытался удалить Content-Type, но все равно не повезло. Я не знаю, какой заголовок accept использовать.

MStone 19.07.2018 23:21
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
4
44
1

Ответы 1

Вам нужно добавить вызов header в файл PHP, чтобы указать, какой тип контента вы создаете. Например, для простого текста:

header('Content-Type: text/plain');

Добавьте этот вызов перед выводом, чтобы избежать проблем. См. http://php.net/manual/en/function.header.php

Затем добавьте в свой клиент C# тот же тип содержимого, что и заголовок Accept.

Спасибо. Я сейчас попробовал это, но все равно без лучших результатов. Я все еще получаю ошибку «неприемлемо», даже когда заголовок ('Content-Type: text / plain'); добавляется, а "text / plain" добавляется в заголовок accept в веб-клиенте.

MStone 20.07.2018 00:07

Другие вопросы по теме