2010-12-09 106 views
1

我需要從http webrequest中刪除最後一個換行以便與json-rpc服務進行通信。 .net生成的請求看起來像這樣。從c#web請求的頭部中刪除換行

POST http://localhost.:8332/ HTTP/1.1 
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 4.0.30319.1) 
Authorization: Basic dGlwa2c6dGlwa2c= 
Host: localhost.:8332 
Content-Length: 42 
Expect: 100-continue 
Connection: Keep-Alive 

{"id":1,"method":"getinfo","params":[]} 

我需要將這個(通知後,最後報頭值丟失換行符和JSON內容的開始):

POST http://localhost.:8332/ HTTP/1.1 
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 4.0.30319.1) 
Authorization: Basic dGlwa2c6dGlwa2c= 
Host: localhost.:8332 
Content-Length: 42 
Expect: 100-continue 
Connection: Keep-Alive 
{"id":1,"method":"getinfo","params":[]} 

我無法找到任何東西,我可以操縱這是實際發送到服務的標題。

http://www.bitcoin.org/smf/index.php?topic=2170.0有關該問題的更多背景...

+2

如果服務需要像第二個示例那樣的請求,那麼它不是有效的HTTP。 HTTP需要一個空白行將標題與正文分開(如果有的話)。 – 2010-12-09 18:57:55

+0

您是否測試過這個版本並驗證過它沒有換行符?要測試這個,你可以使用telnet(運行telnet主機名80,然後在文本編輯器的請求之後)。我從來沒有聽說過關心\ r \ n或\ n的網絡服務器,所以希望這沒有任何區別。如果確實如此,您可以使用NetworkStream類來仔細考慮您發送的字符。 – 2010-12-10 02:50:16

回答

1

終於解決了我的(核)問題。我與rpc服務溝通的問題是我沒有設置內容類型。該服務需要內容類型的「application/json-rpc」才能正常工作。