2016-07-06 16 views
-2

これは韓国語のWebサイトです。だから韓国がいる。node.jsのPOSTリクエストで応答がない理由がわかりません

問題点 - ブラウザでPOSTリクエストと同じようにしようとしました。

しかし、応答は無限ループのようなものではありません。

これはテストコードです。

var request = require('request'); 

// Set the headers 
var headers = { 
    'Host': 'www.onnara.go.kr', 
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0', 
    'Accept': 'application/json, text/plain, */*', 
    'Accept-Language': 'ko-KR,ko;q=0.8,en-US;q=0.5,en;q=0.3', 
    'Accept-Encoding': 'gzip, deflate', 
    'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 
    'Referer': 'http://www.onnara.go.kr/OnnaraServiceMA/onnaraCommon/mainPage.do', 
    'Content-Length': '224', 
    'Cookie': 'onrMapHelpPopup=onrMapHelpPopup; JSESSIonID=D3Tcd2nTJp3aswF1VGjy2pJJX9bRRXsjfhf41yZgL22FgnqzQ1OXEoeKnxwPhH6H.ONRPGIS1_servlet_OnnaraServiceMA; favoriteList=null%3B2917010100100110000%2F%EA%B4%91%EC%A3%BC%EA%B4%91%EC%97%AD%EC%8B%9C%20%EB%B6%81%EA%B5%AC%20%EC%A4%91%ED%9D%A5%EB%8F%99%2011%2FrBldg', 
    'Connection': 'keep-alive' 
} 

// Configure the request 
var options = { 
    url: 'http://www.onnara.go.kr/OnnaraServiceMA/proxy/proxy.jsp?url=', 
    method: 'POST', 
    headers: headers, 
    form: { 
      "url": "http://192.168.10.30:9090/OnnaraServiceBE/getTotalSrchData.do", 
      "keyWrd": "서울 강남구", 
      "authKey": "authNumber1234" 
      } 
} 

// Start the request 
request(options, function (error, response, body) { 
    console.log(body) 
}) 

私は、画像リンクを残すあなたが

http://imgur.com/a/WCxVt

最初のイメージは、ヘッダーメッセージであるブラウザで件のデータと応答を確認することができます。

第2はフォームデータです。

最後に応答メッセージです。

node.jsに応答がない理由を解決してください。

+0

サービスは、あなたが 'options.form.url'にリンクしたURLへのコールバックを実行する必要があります。ここで私はrequest NPMドキュメントから直接使用例要求テンプレートですか?もしそうなら、onnaraサーバは '192.168.10.30'にアクセスできません:https://en.wikipedia.org/wiki/Private_network – rpadovani

+0

あなたの答えをありがとう。それでは、リクエストを送信してレスポンスを受け取る方法はありませんか? –

答えて

0

request()コールでは、エラーをよりよく処理することを検討する必要があります。そうすることで、要求が失敗した時点を知ることができます。

var request = require('request'); 
request(options, function (error, response, body) { 
    if (!error && response.statusCode == 200) { 
    console.log(body) // Show the HTML for the Google homepage. 
    } else { 
    console.warn(response.statusCode) 
    console.error(error)  
    } 
}) 
+0

私は例外処理を無視しました。しかし、エラーはなく、応答がないということは、無限ループのようなメッセージが出ないことを意味します。何も答えない...何もないので、私はなぜ知っているのかわからないが、私はrpadovaniの答えを調べるだろう。 –

関連する問題