-3

PHPで問題が発生しました。インドのすべてのバスステーションを取得したい. だから私はxmlリクエストを作成し、そのxmlデータを指定されたAPI URLに投稿しました。しかし、私は結果を得られませんでした。以下は正常に動作している.netコードです。PHPで「HttpRequest」メソッドを使用しても、「致命的なエラー:クラス 'HttpRequest'が見つかりません」のようなエラーが表示されます。

誰かが私にphpで同等のコードを教えてくれるか、データを取得する方法を教えてくれますか..?

前もって感謝します。

.net コード (正常に動作)

protected void getBusServices(string journeydate)
{

        XmlDocument doc = new XmlDocument();
        StringReader stream;
        StreamReader reader;
        XmlTextReader textreader;
        HttpWebRequest req;
        HttpWebResponse response;
        try
        {

            string password = "password";
            DateTime dt = Convert.ToDateTime(journeydate);
            string strJrneyDate = dt.ToString("MM-dd-yyyy");
            string strRtDate = dt.AddDays(3).ToString("MM-dd-yyyy");
            string url = Bus_Api_Url;


             string RequestCommand = "<Command>GET_STATIONS</Command> <Username>username</Username> <Password>password</Password>";
            req = (HttpWebRequest)WebRequest.Create(url);
            string RequestData = "RequestXML=<?xml version='1.0' encoding='utf-8' ?><BusRequest  xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema'>" + RequestCommand + "</BusRequest>";
            req.Method = WebRequestMethods.Http.Post;
            req.ContentLength = RequestData.Length;
            req.ContentType = "application/x-www-form-urlencoded";
            using (StreamWriter writer = new StreamWriter(req.GetRequestStream()))
            {
                writer.Write(RequestData);
            }
            response = (HttpWebResponse)req.GetResponse();
            Stream responsestream = response.GetResponseStream();
            reader = new StreamReader(responsestream);
            string xmlresponse = reader.ReadToEnd();
            stream = new StringReader(xmlresponse);
            textreader = new XmlTextReader(stream);
            doc.LoadXml(xmlresponse);
            DataSet ds = new DataSet();
            ds.ReadXml(textreader);


        }

        catch (Exception ex)
        {
            EBUtils.Logger.LogError.Publish(ex);
        }
        finally
        {
            reader = null;
            // stream = null;
            reader = null;
            response = null;
            doc = null;
        }
    }

}
4

1 に答える 1

0

とても簡単です。 http://php.net/manual/en/simplexml.examples-basic.phpをチェックしてください

私は何度も同じ方法を使用してきました。アクティブな php プロジェクトの 1 つからの小さなスニペットをここに示します。

$file = "http://the_address_of_the_xml_file.com";
if(!$xml = simplexml_load_file($file)) {
return 0;
} else {     //open
$status = $xml->attributes()->statu
if($status=='ok') {//open
$bio = $xml->artist->bio;


//closed
for ($i = 0; $i < 1; $i++) {

file_get_content はどうですか?

$post_data = array('xml' => $xml_str);
$stream_options = array(
    'http' => array(
        'method'  => 'POST',
        'header'  => 'Content-type: application/x-www-form-urlencoded' . "\r\n",
        'content' =>  http_build_query($post_data)));

$context  = stream_context_create($stream_options);
$response = file_get_contents($url, null, $context);

今日は体調が万全ではなく、ベッドで体調が悪いです ;)

于 2013-02-09T07:00:09.613 に答える