2013-03-09 70 views
1

我的開發人員正在努力的圖像後,以他的Web服務這樣的:POST的base64數據

http://consec.dev.domain.com/Services/ActivityService.svc/SubmitImage?userId=8D428BF6-51F0-43F6-947D-7E19A6A7F4BD&fileName=feels-bad.png&fileContent=iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg== 

這是base64編碼的圖像(這一個恰好是一個紅點,但圖像我們將使用大得多)

當他試圖將它張貼他得到一個:

HTTP Error 414. The request URL is too long. 

他告訴我的,因爲我的IIS配置是錯誤的。我告訴他它的代碼。有人可以對此有所瞭解,或者指示我們開始尋找答案嗎?謝謝

+0

他通過GET參數發送難以置信的大量數據,這是一個壞主意。確實可以通過更改IIS的配置來解決這個問題,但更好的解決方案是首先實際發佈數據(他不這麼做)。 – 2013-03-09 19:18:36

+0

那就是我的想法。 Hes告訴我他在POST和GET之間來回切換,但我仍然將它看作是一個url。所以如果base64數據在URL中,即使他說他在發佈它,它總是作爲一個GET來進行,對嗎? – 2013-03-09 19:21:42

+1

這就是URL(和414錯誤)所暗示的,是的。他需要從查詢字符串中獲取數據。 – 2013-03-09 19:22:07

回答

2

不要POST URL中的數據,利用帖子正文並在那裏提交。這是獲取提交的大量數據的唯一方法。

0

他的代碼是錯誤的。這就是HTTP支持POST請求的原因。

請注意,如果有POST請求,您仍然可以將數據放入網址中。要做一個合適的POST,你需要創建一個URL來定義發佈的位置,並將你想要的數據放入請求的正文中。 GET的

實施例:

GET /some/place.php?var1=value 

POST的實施例:

POST /some/place.php 

var1=value 

然而,它是有效的做到這一點:

POST /some/place.php?var1=value 

var2=value2 

(這些實施例剪斷爲清楚起見,你將不得不發送一些標題以及在POST

0

首先它是一個get而不是一個post的http請求。其次,這個錯誤是由webserver返回的。但這是不好的設計?它實際上應該是一個表單按鈕,使用post raher提交字段比構建的可點擊get url

+0

我認爲這是一個GET,即使他告訴我它的POST。該錯誤肯定是由Web服務器返回的。我們將使用提交按鈕而不是可點擊的網址提交圖片。 – 2013-03-09 19:25:28