前提・実現したいこと
GASのUrlFetchAppを用いてレスポンスが欲しい。
発生している問題・エラーメッセージ
複数サイトの存在確認をUrlFetchAppの戻り値(ステータスコード)を見て判定しております。
その際に、特定のURLをUrlFetchAppに投げると応答が返ってこなくなり、ステータスコードも
例外のキャッチもできず困っております。
該当のソースコード
function myFunction() {
var response = "";
let OutText = "";
let TextVal = "https://www.welcia-yakkyoku.co.jp/";
response = UrlFetchApp.fetch(TextVal,
{
muteHttpExceptions: true,
validateHttpsCertificates:false
});
if(response.getResponseCode() != 200) { OutText = "異常" }else { OutText = "正常" }
}
試したこと
1.他のサイトでは問題なく動作する事を確認済。
上記ソースコードのURLを指定した場合にUrlFetchApp.fetchを実行すると応答が戻ってこない事を確認。
心当たりがある方、お知恵をお貸し頂けると助かります。
(余り難しい言葉でないと助かります)
httpsだから?
コメントありがとうございます。
URLをhttp://にして試してみましたがダメでした。
すみません、そういうことではないです。おそらく、リダイレクトされてます。
>telnet www.welcia-yakkyoku.co.jp 443
だと反応がないので、
>openssl s_client -connect www.welcia-yakkyoku.co.jp:443
やろうとしたら、opensslが危険だとかいわれたので諦めました。
https://qiita.com/hkajikawa/items/9a9ccceecb63538061bf
getResponseCode()を使った方が良いかもしれません。
いえいえ!こちらこそ意図を読み取れずすみません。
telnetも試してくださりありがとうございます。
getResponseCode()についてですが、
私が誤解していたら申し訳ないのですが、
上記コードで言う
response = UrlFetchApp.fetch
で結果をresponseに格納。
if(response.getResponseCode() != 200)
で格納した結果のレスポンスコードを比較
としておりますが、
response = UrlFetchApp.fetch
の時点で応答が返ってこなくなる為、
if(response.getResponseCode() != 200)
までたどり着けない状況です。。。
ああ、コード斜め読みしてました。Twitterに詳しい人がいるので、聞いてみるといいかもしれませんね。↓
タカハシノリアキ#GAS本第2版発売中!
@ntakahashi0505
承知致しました。
ありがとうございます。
特定の URL でのみ失敗するなら、単に拒否されてるんでしょう。
回答1件
あなたの回答
tips
プレビュー