私はHTML validator APIを使用しようとしています。カールの例は私のためにうまく動作し、子プロセスとしてNode内で見つけることができます。このカール要求に相当するNode.js
ただし、標準のHTTPリクエストを使用しようとすると、動作しませんでした。私はノードのためにUnirestライブラリでそれを試しました。
var source = '<html><head><title>a</title></head><body>a</body></html>';
var url = 'http://validator.w3.org/nu/?out=json';
var Request = unirest.post(url);
Request.headers({'Content-Type': 'text/html', 'charset': 'utf-8'});
Request.send(source);
Request.end(res => console.log(res));
応答ボディは未定義で、応答raw_bodyは空です。私は何が間違っているのか分かりませんし、何か助けに感謝します。スーパーエージェントと
これはこれを行いました。ありがとう。 – Yulek
スーパーエージェントは自動的にユーザーエージェントヘッダーを追加する必要があります。これは、私の例が何か特別なことをすることなく「ちょうどうまくいった」理由を説明します。 – Kevin
@ Kevin Yeah、多くのhttpクライアントは、(w3.orgのようなサイトで)互換性のためにユーザーエージェントヘッダーを自動的に追加します。 Curlもこれを行い、質問のcurlコマンドがなぜ機能するのか説明しています。 – tcooc