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


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0914
グルーPOST方法教えてください。15解決


グルー

リンク

2009/9/14(Mon) 21:26:46|NO.27690

ここを参考にしてみました。
http://www.orewp.net/hsp/tcp_ip/http.html
このサイトにある、

 sockput "GET "+HTTPPATH+" HTTP/1.1\nHost:"+HTTPSERVER+"\n\n" 

ここを、書き換えたら(GETをPOSTに変えた)良いと思うんですけど、 その他の方法が全くわからないので、教えてください。 プログラム本体は、 http://blog.goo.ne.jp/hiro239415/e/bf115ab379b519ff6e4fa9fd5a301fb0 このサイトを参考にしてみました。 このようなxmlをPOSTしたいです。 <thread thread="スレッド番号" version="20061206" res_from="-10" /> 回答お願いします。



この記事に返信する


ANTARES

リンク

2009/9/15(Tue) 06:45:02|NO.27695

 GETはパラメータをURLに含めますが、POSTは含めません。
なので、「GET」を「POST」に変えただけでは絶対無理です。
ここにサンプルを書いた記憶があるので探してみてください。
GETでも送れるようなパラメータをPOSTしているだけなので、
xmlまで送れるかどうかはわかりませんが。



fth

リンク

2009/9/15(Tue) 07:41:10|NO.27696

ヘッダの後に2つ改行入れてからパラメータ書けばいいです

POST / HTTP/1.1
Host:host(改行)
(改行)
prm=&prm=&prm=

それとパラメータの後にも3つくらい改行つけないとレスポンス来ないかも



グルー

リンク

2009/9/15(Tue) 18:19:53|NO.27700

回答ありがとうございます。しかし、POSTするXMLにダブルコーテーション?があってどう
書いて良いのか、わかりませんでした。

こんな風に書いてみました。
sockput "POST / HTTP/1.1\nHost:host\n\n"+<thread thread="スレッド番号" version="20061206" res_from="-10" />+"

絶対ダメなのは、分かるんですけど、どう書いたらいいですか?教えてください



リンク

2009/9/16(Wed) 03:17:53|NO.27706

リファレンスを一読されてみてはどうか



ORZ

リンク

2009/9/16(Wed) 12:45:00|NO.27713

えんまーくちょんちょん



シモン

リンク

2009/9/17(Thu) 14:26:45|NO.27740

過去スレの以下を読むと参考になりませんか?

http://hsp.tv/play/pforum.php?mode=pastwch&num=18813

ANTARESさんが投稿されたプロクシ環境で使えるすごい有用なのが見つかるはず。


送信方法は、私が使ってるつたない方法ですが以下のような方法はどうでしょう?

送信したい文字列をテンプレートでテキストファイルにしておく
<thread thread="【スレッド番号】" version="【バージョン】" res_from="【レス】" />
送信時にファイルを読み込む
【スレッド番号】、【バージョン】、【レス】をリプレースで置き換え
xmlはUTF-8なのでUTF-8に文字コード変換して送信

ちょっと回りくどいけど
テンプレートファイルにしておくとプログラム弄らなくてもある程度手直しできる

文字コード変換モジュール
http://hspdev-wiki.net/?Module%2F%CA%B8%BB%FA%A5%B3%A1%BC%A5%C9%CA%D1%B4%B9%A5%E2%A5%B8%A5%E5%A1%BC%A5%EB

以下は自分のところで申し訳ないですが、
Replace
http://scripttpircs.seesaa.net/article/112296780.html



グルー

リンク

2009/9/19(Sat) 23:14:38|NO.27796

返信送れてすいませんでした。

上にある、過去ログの方法でやっても、うまくできませんでした。
送信ヘッダは、どのように変えたらいいですか?

教えてください。



シモン

リンク

2009/9/20(Sun) 02:11:05|NO.27797

ヘッダーの例


endpoint = "xmlの投稿を受け入れているサーバーのURL、「http://」から必要" ;これがわからなければ、どこに投稿していいのかプログラムがわからないので ;投稿できません。 xmlで投稿できる場合はどこかにエンドポイントが公開されているはず。 agent="HSP 3.2" ;user agentはプログラム名等に入れ替える dpost="送信データ" ;この送信データはxml投稿先の受け入れ形式に沿ったものでなくてはならない。 ;私の場合ファイルからテンプレートを読み出し文字列を置換したデータを ;UTF-8変換して送信している header ="POST "+endpoint+" HTTP/1.0\n" header +="User-Agent: " + agent + "\n" header +="Content-type: text/xml; charset=utf-8\n" header +="Content-length: "+ strlen(dpost) +"\n"


ファイル読み出しだと必要ないのでちょっと覚えてないんだけど、
直接送るには、「"」を「\"」にするんだったかな

「test="test"」を送信したければ、上の例のdpostを例にすると
dpost="test=\"test\""
のような感じだったと思う。

実際にこのようなヘッダーと過去ログのサンプルをデータ部分だけ変更したもので
NO.27740のやり方で問題なくxml投稿できてる。

たぶんグルーさんに必要な情報はendpointのURLと
ダブルクォーテーションのエスケープ処理



SYAM

リンク

2009/9/20(Sun) 03:15:23|NO.27798

次から気をつけるといいことですが、質問のときに
>「うまくできません」
っていう書き方はしないようにしましょう。

うまくいかなかった、ではなく、「どうなったのか」をしっかり書いてください。
でないと、回答する側が原因を推測できません。

結果的に、望む回答を手に入れるまでに余計な手間や時間がかかってしまいます。そしたらお互い、損ですからね。



グルー

リンク

2009/9/20(Sun) 09:38:44|NO.27800

すいません。今後気をつけます。

回答ありがとうございます。

すいません、最初に重要な事を書き忘れてました。本当にすいません。

URLからじゃなくてアドレスとポートで接続する方法を教えてください。

今まで、回答してくれた皆様本当にすいませんでした。



シモン

リンク

2009/9/20(Sun) 13:33:55|NO.27806

注意されたのに全然気をつけてない(^^;

グルーさんの書き方ではどう答えていいのかわからないんですよ。


スクリプトなのだから、

1.どういった動きを期待して
2.このようなことをしたが
3.返ってきた反応はこのようで
(反応が返ってこない場合はブレークポイントを授けて反応が帰ってこない場所を特定)
4.どうすればいいのか?(必要ならコードを掲載)


xml投稿のように相手先が必要なら

1.投稿先は「どこ」(これが自分の書いたスクリプトコードならこれに問題がある場合もある)で
2.投稿先の投稿書式は「以下のようなxmlで」
3.このようなことをしたが(「sockput」なら戻り値「stat」はどうなのか?)
4.どうなったのか?(戻り値が正常なら「sockget」した変数には何が入っているのか?)


この程度の基本的な情報をどこが問題なのか捉えるために答える側は知りたいのです。

スクリプトを書いている方は論理的な方が多いので、
質問を見て問題点がわからないような質問の仕方をしている場合は
掲示板だからといって答える義務は無いので返ってくる反応は少ないですよ。

質問:どうしていいのかわかりません。
答え:どういうことをして何がどうわからないのかその質問ではわかりません。

質問の仕方を相手が自分の状況を理解できるように変えてみましょう。



グルー

リンク

2009/9/20(Sun) 15:08:34|NO.27809

自分でもよく分からなくなってきたので、
もう一度よく考えてから、質問したいと思います。

今まで、回答してくれた皆様本当にありがとうござりました。

これからも、宜しくお願いします。



シモン

リンク

2009/9/20(Sun) 15:30:47|NO.27811

やりたそうなことがニコニコ動画のコメント取得のような気がするので、

Perlだけど以下が参考になる。
http://yusukebe.com/tech/archives/20070803/124356.html

XMLの取得に関しては、
HSP3.2の
sample -> comobj -> rssload.hsp
common -> mod_rss.as

あとは重要な点としてクッキー認証まわりが問題になるかもしれない
クッキー認証まわりで参考になりそうな質問
http://hsp.tv/play/pforum.php?mode=pastwch&num=23799

流れとしては、
1.ニコニコ動画にログイン

2.ニコニコ動画にログインした状態の
  セッションを保持したクッキーをもったUserAgentでアクセス

3.戻ってきたXMLを取得

4.http://www.nicovideo.jp/api/getflv?v=ビデオID
  から「GET」して投稿するエンドポイントを抽出

5.抽出したエンドポイントに取得したいスレッド等の情報を「POST」

6.戻ってきたXMLを取得

このような感じだと思います。
認証も「POST」だと思うけど
そのあたりは全部出来ててでスレッドでだけ引っかかってるのかな?

以下のようなところも読んでおくと良い
http://tukinasigawa.blog24.fc2.com/blog-entry-33.html
http://hsp.tv/play/pforum.php?mode=all&num=25484



シモン

リンク

2009/9/20(Sun) 15:34:55|NO.27812

失敗、3.と4.が重複してしまった…



グルー

リンク

2009/9/21(Mon) 02:31:03|NO.27840

回答ありがとうございます。

コメント取得の事も書いてなかった・・・。

もう少し、勉強してからまたやりたいと思います。

回答本当にありがとうございます。



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