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


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
1214
ぬねのjsonを送信しても返事がエラーで返ってくる2解決


ぬねの

リンク

2014/12/14(Sun) 21:12:06|NO.66462

今某サンドボックス型ゲーム(Mi***raft)の認証テスト用のプログラムを作成しています。
以前にも同じようなものを作成してたのですが、HeartBleedへの対策の影響で旧システムが廃止されてしまいました。
公式からは新システムの使用を呼びかけていて新システムへの対応をしている最中に必要なjsonの処理で四苦八苦しています。
新システムの認証ではPOSTでjsonを送信し、それに対して結果を返してくる形式(みたい)なのですが
送信したあと、受信した際にエラーが吐かれてしまいます。それもHSPでエラーコードが表示されるのではなく、
jsonにエラーが返って来ます。どうもエラー内容で検索してもどうもよくわからない....
因みに公式が案内しているシステムは[http://wiki.vg/Authentication#Authenticate]に記載されていましたので参考にしています。
私の力では解決は困難な気がしますので(というか困難かと)、どうか皆様の力を貸してください。

ソースコードは以下の通りです

#include "hspinets.as" mes "hspinetの初期化中です..." netinit mes "アドレスを https://authserver.mojang.com/ に指定します" neturl "https://authserver.mojang.com/" netheader "Content-Type: application/json" USER="" PASS="" screen mes "ユーザー名 or メールアドレス" mes "(例)notch sample@abc.dfg.com" input USER,200,23 mes "" mes "パスワード" mes "(例)123456789" input PASS,200,23 button gosub "確認する",*Cheak stop *Cheak if USER=""|PASS=""{dialog "ユーザー名かパスワードが未記入です":return} dialog "ユーザー名が「"+USER+"」\nパスワードが「"+PASS+"」\nでよろしいですか?",2,"確認をお願いします" if stat=7{return} POSTFILE="{\n\"agent\": {\n\"name\": \"Minecraft\",\n\"version\": 1\n},\n\"username\": \""+USER+"\",\n\"password\": \""+PASS+"\",\n}" netrequest_post "authenticate",POSTFILE repeat title "取得中" await 10 netexec Temp if Temp:break loop netgetv DLdata dialog ""+DLdata dialog {"以下のデータを保存しますか? 送信したJSONファイル 受信したJSONファイル"},2,"保存しますか?" if stat=6{ notesel DLdata notesave "Download.json" notesel POSTFILE notesave "POST.json" dialog {"送信したJSONファイルを「POST.json」で保存しました。 受信したJSONファイルを「Download.json」で保存しました。"} title "完了(?)" stop } stop
※https通信が必要なため[http://hsp.moe/#junk]さんのHTTPS対応hspinet.dllを使用しています。
送信しているjsonは[http://wiki.vg/Authentication#Authenticate]を参考にしています。※

エラー内容は以下の通りです
Unexpected character
('}' (code 125))
was expecting double-quote to start field name\n
at [Source: org.eclipse.jetty.server.HttpInput@16ebd7a8; line: 8, column: 2]
(改行無しだとはみ出てしまうので一応改行しています。)



この記事に返信する


nepisat

リンク

2014/12/14(Sun) 21:31:30|NO.66463

過去に同じようなものを(別言語ですが、)作ろうとしたときは
公式jarを(勝手に)でコンパイルしたら理解できました。が、やらない方がいいでしょう。

"{\n\"agent\": {\n\"name\": \"Minecraft\",\n\"version\": 1\n},\n\"username\": \""+USER+"\",\n\"password\": \""+PASS+"\",\n\"clientToken\": \"client identifier\"\n}"

これでOKなのかわかりませんが、パラメータが一つ足りなかったようです。



ぬねの

リンク

2014/12/14(Sun) 22:32:06|NO.66471

>>nepisat さん
ありがとうございます!解決できました!
コレで完成まで導いてみます!

(clientTokenは空("")で送信してもいいみたいですね。
素直に返事が返ってきました。)



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