2011-12-10 6 views
3

Android 2.3アプリケーションからJava 1.5を使用してJSON文字列を送信しようとしています。これは、バイト[]に変換されたASP.NET WebServiceメソッドPOST Base64Binaryストリームを待機しています。ここでJavaバイトからVB.NETバイト(WebService)に変換する例外

は、JSON文字列をエンコードするために私のJavaコードです:

String encoded = Base64.encodeToString(me.getValue().getBytes(), Base64.DEFAULT); 

私は私のJSON文字列です。ここで

は、私はASP.NETから取得していますエラーです:

System.ArgumentException: Cannot convert eyJJZEV0YXRJbnNwZWN0aW9uIjoiMSIsIkFwcGxpY2FibGUiOiJUcnVlIiwiSWRFdGF0IjoiMSIsIklkVGFzayI6IjczOCIsIkRhdGVEZXJuaWVyTW9kaWYiOiIyMDExLTEyLTA5IDIwOjA5OjIyIiwiSWRDb250cmF0IjoiMzg1NTYiLCJJZFRhc2tDb250cmF0IjoiNDc5ODExMSJ9 to System.Byte. 
Parameter name: type ---> System.FormatException: Input string was not in a correct format. 
    at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) 
    at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) 
    at System.Byte.Parse(String s, NumberStyles style, NumberFormatInfo info) 
    at System.String.System.IConvertible.ToByte(IFormatProvider provider) 
    at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider) 
    at System.Web.Services.Protocols.ScalarFormatter.FromString(String value, Type type) 
    --- End of inner exception stack trace --- 
    at System.Web.Services.Protocols.ScalarFormatter.FromString(String value, Type type) 
    at System.Web.Services.Protocols.ValueCollectionParameterReader.Read(NameValueCollection collection) 
    at System.Web.Services.Protocols.HtmlFormParameterReader.Read(HttpRequest request) 
    at System.Web.Services.Protocols.HttpServerProtocol.ReadParameters() 
    at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest() 

私はこのエラーを取得していますなぜすべてのアイデア(私は、.NET側を制御することはできませんか)?

ありがとうございます! Nicolas。

答えて

2

私は前に同様の問題に直面しました。私はBase64を使ってSHA-1ハッシングを行うためにAndroidでコードを実装しました。

また、私はここに.NETで自分のWebサービスメソッドでは、サーバー側のSHA-1ハッシュ

をしていた私のサーバー側のコードは、(の.asmx Webサービス)のように見えるものである

public class Service1 : System.Web.Services.WebService 
     { 
      [WebMethod] 
      public string HashCode(string str) 
     { 
      string rethash = ""; 
     try 
     { 

     System.Security.Cryptography.SHA1 hash = System.Security.Cryptography.SHA1.Create(); 
     System.Text.ASCIIEncoding encoder = new System.Text.ASCIIEncoding(); 
     byte[] combined = encoder.GetBytes(str); 
     hash.ComputeHash(combined); 
     rethash = Convert.ToBase64String(hash.Hash); 
      } 
     catch (Exception ex) 
     { 
     string strerr = "Error in HashCode : " + ex.Message; 
     } 
    return rethash; 
    } 
    } 

この私のために働いて、私は正しくバイト配列のハッシュを計算することができます。これはあなたにいくつかのアイデアを提供します

希望、

乾杯

+0

すべてのベストは、あなたのソリューションをいただき、ありがとうございます。あなたはそれが正しいと思った。 –

関連する問題