前提・実現したいこと
Google Apps ScriptでWebページの内容をスクレイピングしたいと考えています。
APIにHTTPリクエストを送信すると、取得するべき内容がレスポンスとして返ってくるので、これを取得しようとしています。
(GAS以外のソフトを使い、HTTPリクエストを投げれば答えが返ってくることは確認済みです。)
そのAPIが動作が独特で、HTTPリクエストのHeaderに必要事項がもれなく記載されていないと、エラー(500や418など)を返してきます。
その為、Headerに「Content-Length: 0」と入れたいのですが、GASでやろうとするとエラーになってしまいます。
(GAS以外のフリーソフトでは、Headerに「Content-Length: 0」といれると「200 OK」と、入れないと「500」を返してきます。)
GASで、エラーを無視して、Headerに「Content-Length: 0」を入れる方法はありませんでしょうか。
よろしくお願いいたします。
発生している問題・エラーメッセージ
指定された属性の値が無効です: Header:Content-Length(行 48、ファイル「コード」)
該当のソースコード
function sendPostRequestwordtogeo2(token,cookie){ Logger.log(token) Logger.log(cookie) var headers = { 'connection': 'keep-alive', 'x-csrf-token':token, 'cookie':cookie, 'Origin': 'https://www.example.com', 'x-requested-with': 'XMLHttpRequest', 'accept-language': 'ja-JP', 'Accept': '*/*', 'Referer': 'https://www.example.com/ja-JP/stores/', 'Content-Length':0, }; var payload = { }; var options = { 'headers': headers, 'method': 'POST', muteHttpExceptions: true, // 'payload':JSON.stringify() }; var fetch2 = UrlFetchApp.fetch('https://www.example.com/rtapi/locations/v2/autocomplete?query=XXXX',options); Logger.log(fetch2) }
試したこと
JavaScriptのエラー処理(https://wood-roots.com/web/jquery-javascript/57)や、muteHttpExceptionsの設定など試しましたが、やはり「エラー事態を無視してPOSTする」ことができません。
回答1件
あなたの回答
tips
プレビュー