ここに私のサンプルURLがあります:
url.com/data?format=json&pro={%22merchanturl%22:%22http://url.com/logo.png%22,%22price%22:599,%22productDesc%22:%22Apple%2032GBBlack%22,%22prodID%22:%22913393%22,%22merchant%22:%224536%22,%22prourl%22:%22http://url.com/data%22,%22name%22:%22Apple%2032GB%20%2D%20Black%22,%22productUrl%22:%22http://www.url.com/image.jpg%22,%22myprice%22:550,%22mercname%22:%22hello%22,%22mybool%22:false}
私はアンドロイドアプリを持っています。この URL をサーバーに投稿する必要があります。そのサーバーはトークンで応答します。私はアプリを介してhttppostを行っています。しかし、応答/例外がありません。同じ URL をコピーしてブラウザに貼り付けると、非常にうまく機能します。エンコーディング部分で間違いを犯していることを願っています。誰でも私の問題を指摘できますか?
これが私のエンコード方法です:
private String encodeString(String input) {
String output = new String(input.trim().replace(" ", "%20")
.replace("&", "%26").replace(",", "%2c").replace("(", "%28")
.replace(")", "%29").replace("!", "%21").replace("=", "%3D")
.replace("<", "%3C").replace(">", "%3E").replace("#", "%23")
.replace("$", "%24").replace("'", "%27").replace("*", "%2A")
.replace("-", "%2D").replace(".", "%2E").replace("/", "%2F")
.replace(":", "%3A").replace(";", "%3B").replace("?", "%3F")
.replace("@", "%40").replace("[", "%5B").replace("\\", "%5C")
.replace("]", "%5D").replace("_", "%5F").replace("`", "%60")
.replace("{", "%7B").replace("|", "%7C").replace("}", "%7D")
.replace("\"", "%22"));
return output;
}
アップデート:
私がこのようにしている理由は、この形式でデータを送信する必要があるからです。URL のパラメーター部分は json データです。完全な URL をエンコードすると、うまくいきません。