Звоните php из C # для Windows 7 Mobile - PullRequest
0 голосов
/ 21 апреля 2011

Я новичок в C #, php и всем кодировании на мобильном win 7. У меня проблема с моим кодом, и больше нет форумов / сайтов, на которых я мог бы найти ответ, поэтому я отправляю запрос здесь .

Я работаю над мобильным проектом для Windows 7, и в моем коде мне нужно вызвать скрипт php из C #, а затем использовать значения, которые возвращает php. Код выглядит примерно так:

string url = "../test.php";
req = (HttpWebRequest)WebRequest.Create(url);
IAsyncResult res = (IASync)req.BeginGetResponse(WebComplete, req);

private void Webcomplete(IAsyncResult a)
{
  var req = (HttpWebRequest)a.AsyncState;
  var res = req.EndGetResponse(a);
  ........
  ........
}

Код работает, но ничего не происходит. Когда я ставлю точку останова на BeginGetResponse, я обнаруживаю, что она вообще не вызывает WebComplete. Знаете ли вы, почему это происходит, и каков обходной путь? Также, как я могу присвоить значение, которое я получаю из php-кода, переменной, чтобы я мог дополнительно манипулировать данными. Примечание. URL-адрес возвращает правильные значения, когда я проверял его в браузере.

Спасибо за помощь - Racheal

1 Ответ

0 голосов
/ 21 апреля 2011

Две вещи, которые нужно сделать.

Во-первых, исправьте URL в файле php.Как упомянул @ctacke, тот, который у вас есть, указывает на локальное устройство ... на котором нет php-файла, если у вас не происходит каких-то действительно странных вещей.

Второй вариант не обязателен.Вместо выполнения асинхронного запроса сделайте его синхронным.Например:

String postLocation = "http://myserver.com/test.php";

HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(postLocation);
// Setting the useragent seems to resolve certain issues that *may* crop up with certain servers.  
httpRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";

using (HttpWebResponse httpResponse = (HttpWebResponse)httpRequest.GetResponse()) {
    StreamReader reader = new StreamReader(httpResponse.GetResponseStream());
    string results = reader.ReadToEnd();
    // at this point you have the entire response in the results variable.  
    // Do with it as you please...
}

По крайней мере, если существует реальная проблема, синхронный метод должен дать вам немедленную обратную связь по этому вопросу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...