60
A
回答
98
這取決於目標服務器接受的內容。對此沒有明確的標準。另見a.o. Wikipedia: Query string:
雖然沒有明確的標準,最web框架允許多個值與單個場(例如
field1=value1&field1=value2&field2=value3
)相關聯。 [4][5]
一般地,當目標服務器使用強類型編程語言如Java(Servlet),那麼你可以把他們作爲多個參數使用相同的名稱。 API通常提供一個專用的方法來獲取多個參數值作爲數組。
foo=value1&foo=value2&foo=value3
String[] foo = request.getParameterValues("foo"); // [value1, value2, value3]
的request.getParameter("foo")
也將在它的工作,但它會只返回第一個值。
String foo = request.getParameter("foo"); // value1
而且,當目標服務器使用弱類型化語言如PHP或回報率,那麼你需要的後綴,以便括號[]
參數名稱觸發語言返回值的數組,而不是一個單一的價值。
foo[]=value1&foo[]=value2&foo[]=value3
$foo = $_GET["foo"]; // [value1, value2, value3]
echo is_array($foo); // true
如果你還在用foo=value1&foo=value2&foo=value3
,那麼它會只返回第一個值。
$foo = $_GET["foo"]; // value1
echo is_array($foo); // false
請注意,當您發送foo[]=value1&foo[]=value2&foo[]=value3
到Java Servlet中,那麼你仍然可以得到他們,但你需要使用精確的參數名稱包括括號。
String[] foo = request.getParameterValues("foo[]"); // [value1, value2, value3]
147
我知道這個帖子是真的老了,但我要回復,因爲雖然BalusC的答案被標記爲正確的,它不是完全正確的。
你必須編寫查詢添加「[]」到foo這樣的:
foo[]=val1&foo[]=val2&foo[]=val3
相關問題
- 1. 在String []中獲取和發送數據使用servlet的數組
- 2. 使用jquery發送數組
- 3. 發送一個數組從Android到PHP腳本通過HTTP並獲取數據
- 4. 在jQuery中發送數組數據獲取ajax調用?
- 5. 使用MySQL獲取數組
- 6. 發送JSON數組使用HTTP GET Android中
- 7. 如何在ajax調用發送時使用PHP中的數組獲取數據
- 8. jQuery:發送數組
- 9. Angular 2 http獲取對象數組
- 10. MPI發送數組的數組
- 11. VirtualWire - 發送整數數組
- 12. 發送String []數組在使用ObjectOuputStream
- 13. 使用ajax發送javascript數組到jsp
- 14. 使用HTTParty發送數組Gem
- 15. 使用tcp發送字符串數組
- 16. 使用PHP將數組發送到MySql
- 17. 如何使用Spring RestTemplate發送數組?
- 18. 如何使用Bundle發送數組?
- 19. 在codeigniter中使用ajax發送數組
- 20. 發送JS數組使用jQuery AJAX
- 21. 使用sendgrid發送Php數組錯誤
- 22. 使用URLEncoder.encode()發送字符串數組?
- 23. 發送數組使用jquery post
- 24. 使用MPI發送3D數組部分
- 25. 如何使用QWebSocket發送數組?
- 26. 使用JDBI獲取Postgres數組數據
- 27. 獲取數組
- 28. 獲取數組
- 29. 獲取數組
- 30. 獲取數組
很高興回答你這個老帖子!它絕對有幫助。 – 2014-08-27 07:41:23
這個答案只適用於像PHP這樣的弱類型語言的用戶,因爲'[]'實際上被用作內部工作以便能夠獲得多值參數。我的答案已經更新,以澄清更多。所以你的陳述「不完全正確」是無效的。最初的問題是關於Java,而不是PHP。 – BalusC 2015-10-22 13:41:34