質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
cURL

cURLはHTTP, FTPやTelnetなど複数のプロトコルを用いてデータを転送するライブラリとコマンドラインツールを提供します。

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

Q&A

解決済

3回答

1414閲覧

シェルスクリプト内のCurlコマンドを使用して、日本語(バイナリ?)をPOSTしたいです。

010u

総合スコア10

cURL

cURLはHTTP, FTPやTelnetなど複数のプロトコルを用いてデータを転送するライブラリとコマンドラインツールを提供します。

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

0グッド

0クリップ

投稿2019/01/10 02:38

編集2019/01/10 04:06

環境

MacOS 10.13.6
Ubuntu 18.04.1 LTS

前提・実現したいこと

Ubuntu 18.04.1 LTSから
シェルスクリプトに格納された、
Curlコマンドを使用して、日本語(バイナリ?)をPOSTしたいです。
シェルスクリプトを使用している理由は、crontabを利用して定期的に実行する為です。

発生している問題・エラーメッセージ

ターミナル(MacOS)で直接実行すると、正常に動作している様なのですが、シェルスクリプトに格納して、shコマンドで実行すると、ポスト内容が見つからない様な反応が返って来ます。

該当のソースコード

恐らく、Curlコマンド中の、--data-binary付近の問題だと思っているのですが。。わかりません。

#!/bin/bash curl 'https://○○○' -H 'Origin: https://○○○' -H 'Accept-Encoding: gzip, deflate, br' -H 'Accept-Language: ja,en-US;q=0.9,en;q=0.8' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36' -H 'Content-Type: multipart/form-data; boundary=----WebKitFormBoundary○○○' -H 'Accept: application/json, text/plain, */*' -H 'Referer: https://○○○' -H 'Cookie: lnubid=○○○; installId=○○○; _ga=GA○○○; _gid=GA○○○; _ga=GA○○○; _gid=GA○○○; is_signed_in=1; nsess=○○○; homeTab=public-group; __gads=ID=○○○:S=ALNI_○○○; visitorStatus%3AvisitCount=3; _gat_UA-○○○=1; visitorStatus%3AsessionPageView=3' -H 'Connection: keep-alive' --data-binary $'------WebKitFormBoundary○○○\r\nContent-Disposition: form-data; name="type"\r\n\r\nnormal\r\n------WebKitFormBoundary○○○\r\nContent-Disposition: form-data; name="lang"\r\n\r\nja\r\n------WebKitFormBoundary○○○\r\nContent-Disposition: form-data; name="message"\r\n\r\n○○○日本語内容箇所○○○\r\n------WebKitFormBoundary○○○--\r\n' --compressed

ターミナル(MacOS)に直接入力>実行

正常に日本語内容箇所が反映され、ポストできています。

上記、シェルスクリプトを実行

書き込み内容がありません。の様にターミナルに表示されます。

初歩的な問題かもしれないのですが、宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2019/01/10 02:45

「シェルに格納」、とはシェルスクリプトのことでしょうか。実際にどんな文字列やコマンドラインオプションを指定してNGとなるか、ご提示ください。今のままですと回答するには情報不足だと思います。それとmacOSのバージョンなども。
otn

2019/01/10 02:57

「こういうスクリプトを実行したら、こういうエラーメッセージが出た」と書いてください。 質問テンプレートを正しく使いましょう。
010u

2019/01/10 04:02

本文に環境、ソースコード、実行後結果などを追記、編集しました。 宜しくお願い致します。
guest

回答3

0

nkfなどでエンコードが必要では?

投稿2019/01/10 06:05

yambejp

総合スコア114883

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

010u

2019/01/10 06:30

回答ありがとうございます。無事、自己解決できました。nkfのエンコードについても調べてみようと思います。
guest

0

自己解決

スクリプトのシバンを外し、crontabから/bin/zsh [スクリプトパス] として正常に実行できました。

投稿2019/01/10 06:28

010u

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

curl --data q='日本語+ポスト' https://google.com/search

googleではPOSTはダメだと怒られますが。

投稿2019/01/10 02:47

kunai

総合スコア5405

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

010u

2019/01/10 03:58

回答ありがとうございます! --data-binary を --data にすると大丈夫なのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問