2017-03-01 55 views
1

我需要在HttpUrlConnection中放置一些頭文件,以便使用Slim框架(版本3)將它們發送到使用PHP編寫的Web服務器。爲什麼php slim頭文件已經連接在一起?

當我在連接中使用相同的鍵放置更多標題時,我遇到了麻煩。 例如:

HttpUrlConnection conn = createConnectionSomeHow(); 
conn.addRequestProperty("myHeader", "value1"); 
conn.addRequestProperty("myHeader", "value2"); 

如果我使用一個手錶conn.getRequestProperties(),我看到與鍵"myHeader"一個頭和2種元素作爲值的列表。就像我想要的一樣。

但我的網絡服務器收不到那個頭。

如果我寫:

$values = $request->getHeader('myHeader'); 

$values不是2個元素的列表,這是1個元件與值"value1, value2"的列表,即,2點的值在單個字符串串聯。 這真的很奇怪。我從Slim documentation閱讀:

你可以得到一個頭的值(S)與PSR 7 Request對象的 getHeader($ name)方法。對於給定的 標題名稱,這將返回的值數組。請記住,單個HTTP標頭可能有多個 值!

有一種方法自動連接標題的值,它被稱爲getHeaderLine。而我不是在呼喚它。我打電話給getHeader

此行爲是否正確?我錯了嗎?

+0

什麼是HttpURLConnection的?這個頭文件在$ _SERVER中有什麼? –

回答

1

好的。這實際上是一個錯誤。

我爲此創建了一個issue at the Slim Github project

至於解決辦法,你可以自己拆頭:

$values = explode(',', $request->getHeaderLine('myHeader')); 
+0

不是一個錯誤。 Slim \ Http對此的處理與Zend \ Diactoros相同。 –

相關問題