HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2019
0616
yo0810androidでサーバにファイルを送りたい。7解決


yo0810

リンク

2019/6/16(Sun) 09:42:36|NO.87621

こんにちは。

教えていただきたい事があります。

androidで動作するようにスクリプトを組みなおそうと考えております。

サーバからファイルを取得する方法はhttploadで出来ることは分かったのですが、
逆にサーバに送る方法はありますでしょうか。

WINDOWSでは、サーバ側にPHPで書いたプログラムを置いてsockopenにて、実装しました。

申し訳ありませんが、ご教授お願いいたします。



この記事に返信する


F***in' cr**

リンク

2019/6/16(Sun) 12:01:14|NO.87624

httploadはpostに対応しているので文字列を送れます
とりあえず取り急ぎ



yo0810

リンク

2019/6/17(Mon) 02:48:47|NO.87636

ありがとうございます。

POSTに対応しているという事でPHPのプログラムを書いて実行してるのですが、
引き渡しが出来ないでいます。

そこで下記のようなテストプログラムを書いたのですが、やはり引き渡されません。

マニュアルには
「Windows,Emscripten(WebGL),androidプラットフォームのみサポートされています。」
となっているので、動作すると思っていたのですが、テストをWINDOWSでやってるのが
問題なのでしょうか。

現在の環境は、windows10上でHSPスクリプトを動作させています。

よろしくお願いいたします。


---PHP
<?php
$fname = $_POST["fname"];
$uid = $_POST["uid"];
echo $fname;
echo $uid;
?>

----HSP
#include "hsp3dish.as"

#const FALSE 0
#const TRUE 1

redraw 0
color 0, 0, 0 : boxf
color 255,255,255

web_file_url = "XXXXXXXXX.com/fwrite.php" ;実際のURLは違います。
web_res = 0
web_upload_success = FALSE
web_upload_error = FALSE
web_error_str = ""
httpload web_file_url,"fname=123456&uid=ABCDEFGHIJKLMN"
if stat : dialog "サーバに保存できません" :end
repeat
httpinfo web_res, HTTPINFO_MODE
if web_res == HTTPMODE_READY {
web_upload_success = TRUE
break
}
if web_res <= HTTPMODE_NONE {
web_upload_error = TRUE
break
}
await 16
loop
get_web_buff = ""
httpinfo get_web_buff, HTTPINFO_DATA
mes get_web_buff
if web_load_error :dialog "サーバに保存できません" :end

mes "end"
redraw 1
wait 1
stop



F***in' cr**

リンク

2019/6/21(Fri) 21:51:37|NO.87683

phpをapacheに置いてARCでPOSTすると正常に値が帰ってきます
HSPプログラムのミスでは?



F***in' cr**

リンク

2019/6/21(Fri) 22:08:18|NO.87684

先ほどWireshark使ってパケット見ましたが正常でした
そんでもって変数のサイズはちゃんとPOSTの内容によって変化していたので私の環境ではエンコードの問題だと考えます
サーバーのOSはDebianです



F***in' cr**

リンク

2019/6/21(Fri) 22:13:41|NO.87685

連投申し訳ないです
私がガイジなプログラムを組んでただけでした

yo0810さんのプログラムで正しく動作しました。
http://を抜かしていませんか?



yo0810

リンク

2019/6/22(Sat) 10:06:25|NO.87690

ありがとうございます。

"http://"、もちろんついています。

GETだと動作しますし、php側は、htmlでポストしても、問題なく動いてます。

F***in' cr**様の環境上では動作したとの事ですので、もう少し見てみます。


確認用html
<form action="fwrite.php" method="post" enctype="multipart/form-data">
<label for="fname_label">file name</label>
<input type="text" id="fname_label" name="fname">

<label for="uid_label">uid</label>
<input type="uid" id="uid_label" name="uid">
<input type="submit" name="Button" value="送信" />
</form>



yo0810

リンク

2019/6/22(Sat) 10:46:21|NO.87691

すみません、解決できました。

ありがとうございます。
「http://を抜かしていませんか?」から、着目出来たことで解決できました。

GETだと
httpload "http://xxxxxx.com/fwrite.php?fname=123456&uid=ABCDEFGHIJKLMN"
で、問題なく引数を渡せるのですが、
POSTだと
httpload "http://www.xxxxxx.com/fwrite.php","fname=123456&uid=ABCDEFGHIJKLMN"
で、動作しました。

wwwを省略したことが、原因でした。

すっきりしました。



ONION software Copyright 1997-2021(c) All rights reserved.