簡體   English   中英

使用apache2將xml發布到php

[英]POST xml to php with apache2

我正在開發一個通過POST接收XML數據,使用PHP腳本進行處理並返回XML響應的應用程序。

我正在使用以下PHP代碼獲取XML:

$requestStr = file_get_contents('php://input');
$requests = simplexml_load_string($requestStr);

在使用nginx作為服務器的基於Linux的產品硬件上可以很好地工作。

但是,為了進行測試,我希望能夠在MacBook Pro上運行它,因此當我在此XML處理器上進行有針對性的開發時,可以避免“生成映像,在產品上安裝,重新啟動產品,等待,測試更改”循環。 。

我啟用了“網絡共享”功能,該功能啟動了Apache,添加了重寫規則,以在我的開發源目錄中指向方便的URI,並使用curl將請求發送至我的PHP腳本,因此:

curl -H "Content-Type:text/xml" -d @request.xml http://localhost/test/path/testscript

“ testscript”由PHP腳本很好地處理,但是當它讀取為"php:://input"我什么也沒得到-空字符串。

有人知道為什么在Linux上使用nginx而不在MacOS上使用Apache可以為什么嗎?

我已經搜索並搜索stackoverlow.com都沒有用。 感謝您的任何答案。

更新:我發現至少在此配置中,從php:// stdin讀取將正常工作,而從php://input讀取則不會。 誰知道?

不熟悉nginx或MacOS,但對於FreeBSD / Apache,您可以嘗試另一種方法:

$ xml_in = $ GLOBALS [“ HTTP_RAW_POST_DATA”];

您還必須將其添加到.htaccess中:

php_value always_populate_raw_post_data 1

HTH,凱文

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM