2016-09-03 23 views
0

htmlフォームからページへの投稿要求をシミュレートする必要があります。私はペイロードに配列を適切に送る方法を知る必要があります。事前のおかげで..私は上のこのような方法で目的のページが受信した提出されます簡単なHTMLコード持ってurlfetchappでペイロードに配列を含む投稿要求を送信する方法

:ガス中の

{ 
    "args": {}, 
    "data": "", 
    "files": {}, 
    "form": { 
    "Link[]": [ 
     "picturelink1.png", 
     "picturelink2.png", 
     "picturelink3.png" 
    ], 
    "animationtype": "link", 
    "size": "400", 
    "speed": "0.4", 
    "usersize": "", 
    "userspeed": "0.1" 
    } 
} 

私が書いたコードを、同じ要求をシミュレートする必要があります。

var payload = 
     {  
     "Link[]":["jovianarchive_com/Content/Charts/621903744000000000_png","jovianarchive_com/Content/Charts/621903708000000000_png","jovianarchive_com/Content/Charts/621903816000000000_png"], 
     "animationtype":"link","size":"300","speed":"1","usersize":"","userspeed":"" 
     } 

    var options = 
    { 
    "method" : "post", 
    "payload" : payload 
    }; 
    var result = (UrlFetchApp.fetch("http://httpbin.org/post", options).getContentText()); 

、これはこの要求を返します。

{ 
    "args": {},  
    "data": "", 
    "files": {}, 
    "form": { "Link[]": "[Ljava.lang.Object;@536733f2", 
    "animationtype": "link", 
    "size": "300", 
    "speed": "1", 
    "usersize": "", 
    "userspeed": "" 
} 

問題はここにある:

"form": { "Link[]": "[Ljava.lang.Object;@536733f2", 

が代わりにこれをする必要があります:..私はまた、それを文字列化し、JSON

"Content-type" : "application/json", 

として送信しようとしてい

"form": { 
    "Link[]": [ 
     "picturelink1.png", 
     "picturelink2.png", 
     "picturelink3.png" 
    ], 

が、それはない所望の出力どちらを生成

ペイロードを引用文字列として受け取ります。

"args": {}, "data": "", "files": {}, "form": { "{\"Link[]\":[\"jovianarchive_com/Content/Charts/621903744000000000_png\",\"jovianarchive_com/Content/Charts/621903708000000000_png\",\"jovianarchive_com/Content/Charts/621903816000000000_png\"],\"animationtype\":\"link\",\"size\":\"300\",\"speed\":\"1\",\"usersize\":\"\",\"userspeed\":\"\"}": "" }, ..... 

任意の助けのためのTHXは...

+0

明確化:「application/x-www-form-urlencoded」データを送信しようとしていますか? – Karan

+0

3文字列の配列を送信しようとしています。 viz: var payload = { "Link []":["http://jovianarchive.com/Content/Charts/621903744000000000_.png"、 " http://jovianarchive.com/Content/Charts/621903708000000000_.png","http://jovianarchive.com/Content/Charts/621903816000000000_.png "]、 " animationtype ":" link "、" size ":" 「0」、「speed」:「1」、「usersize」:「」、「userspeed」:「」 ) –

+0

JSONはあなたのために機能しませんか?あなたは簡単に{"Link":["file1.png"、 "file2.png"、 "file3.png"]}を使うことができます。 "content-type"を "application/json" JSON.stringifyをオブジェクトに対して使用することができます。 – Karan

答えて

0

私はそれを発見しました! haleluya .. このようにペイロードを準備する必要があります!回避策PHPスクリプトを作成しているときにこの解決策を見つけました。

var payload = 
     {  
     "Link[0]":"http://..", 
     "Link[1]":"http://..",   
     "animationtype":"link","size":"300","speed":"1","usersize":"","userspeed":"" 
     }... 

非常に直感的ではありませんが、素晴らしいです!

受信したペイロードは、HTMLフォームと同じようには見えませんが、私の場合はうまくいきました!

{ "args": {}, "data": "", "files": {}, "form": 
{ 
"Link[0]": "http://jovianarchive.com/Content/Charts/621903744000000000_.png", 
"Link[1]": "http://jovianarchive.com/Content/Charts/621903708000000000_.png", 
"animationtype": "link", "size": "300", "speed": "1", "usersize":` "","userspeed": "" }, ..... 
関連する問題