最近swiftでiOSアプリの開発を始めた者です。
タイトルの通りですが、swiftからJavaで作られたシステムのURLにPOSTし、その戻り値(HashMap型)をswift側で参照したいのですが、
どのような方法で行うのがよろしいでしょうか。
sendAsynchronousRequestを使って、別のfunctionに戻り値を受け取らせる方法を試みたのですが、型の違いでうまくできません。
スマートな方法ご存知の方いらっしゃったらご教示いただきたいです。
ちなみにJava側のコードはこのような形です。
Java
1public HashMap<String, Object> loginSphone() throws Exception { 2 HashMap<String, Object> res = new HashMap<String, Object>(); 3 res.put("code", 200); 4 return res; 5}
【バージョン】
swift3
【環境】
XCode8.0
「その戻り値」がHashMap型とおっしゃられておりますが、具体的にはなんですか?Javaのクラスということではないのですよね?一般的には、jsonやXMLでサーバから返却してもらい、それをswift側でDictionaryや配列に設定することになると思いますよ。
コメントいただき誠にありがとうございます。Java側のコードの追記をしました。
Webサーバはなんですか?http://stackoverflow.com/questions/11107875/jax-ws-how-to-make-a-soap-response-return-a-hashmap-object この辺りを見ると、Sorpで返却されるのでしょうか? 単にそのURLをブラウザでアクセスすると、何が返却されるかをご覧になれば、swift側で何をしなければいけないのかが明確になると思われます。あるいは、サーバ側でswiftが扱いやすい形式に変換して返却するかでしょうか。
OSはLinuxです。ブラウザでURLを直接叩き、戻り値を確認してみましたが、どうやらJSONで返却されていたようでした。そのデータをswift側でprintで見たところ、Optional(208 bytes)となっておりました。これをうまく取り出す方法があればお教えいただければと思います。
回答2件
あなたの回答
tips
プレビュー