2013-11-18 3 views
0

Я пытался работать с данными php post за последние два дня, и, будучи абсолютно уверенным, мой код был логичным, я отказался от попыток заставить его работать сам.C# -> Php | Почтовые данные

Вот мой C# код,

class SecureWeb 
{ 
    /* 
    * CONSTRUCTOR 
    */ 
    public SecureWeb() 
    { 
     //INITIALIZE 

    } 

    public bool ValidateServerCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) 
    { 
     return true; 
    } 
    public string Post(string URI, NameValueCollection Message) 
    { 
     try 
     { 
      string result = null; 
      using (WebClient wc = new WebClient()) 
      { 
       wc.Proxy = null; 
       wc.Credentials = CredentialCache.DefaultCredentials;      
       ServicePointManager.ServerCertificateValidationCallback += ValidateServerCertificate; 
       byte[] bByte = wc.UploadValues(URI, (Message)); 
       result = Encoding.UTF8.GetString(bByte); 
      } 
      return result; 
     } 
     catch (Exception) { } 
     return null; 
    } 
} 

и вот мой PHP код (да, я попробовал только с помощью простого эха),

<?php 
function getParams() { 

    if (!isset($_POST['db'])) { 
     return false; 
    } 
    if (!isset($_POST['user'])) { 
     return false; 
    } 

    return true; 
} 

if (!getParams()) { 

    echo('NULL_DATA'); 
    exit(); 
} 
else { 

    $user = $_POST['user']; 
    echo ($user); 
    exit(); 
} 

?>

Я получаю ошибка 406, претендующая на мой запрос, является «неприемлемой». Я также довольно положительно, проблема в том, что это мой сервер, я просто не уверен, что нужно исправлять или настраивать.

+0

Я уверен, что wc имеет UploadSomething (idr, если его UploadValues), и вам нужно добавить к нему многократное, что раздражает и смешно. Я не помню, как это делать, но я уверен, что это поможет кому-то ответить –

+0

Я не уверен насчет C#, если вы передаете параметры через POST..Но ваш php-код выглядит хорошо .. –

ответ

0

Я играл с каждым возможным заголовком, пока я не нашел решение, видя, как на мой веб-сервер был на 100% уверен, что проблема не была на их стороне. Оказывается, я НЕОБХОДИЛ User-Agent, потому что по какой-то нечетной причине запрос не получил его по умолчанию.

1

Добавить

wc.Headers.Add("Content-Type","application/x-www-form-urlencoded"); 

перед отправкой запроса, а также удалить скобки вокруг Сообщение от

wc.UploadValues(URI, Message); 

вызова

+0

Извините за поздний ответ , и спасибо, хотя моя проблема продолжается. Я почти полностью уверен, что сейчас это связано с моим сервером, но я не знаю, как это решить. – user1117742456

Смежные вопросы