簡體   English   中英

將Java字節轉換為VB.NET字節的異常(WebService)

[英]Exception converting Java byte to VB.NET byte (WebService)

我正在嘗試從Android 2.3應用程序發送一個JSON字符串,使用Java 1.5,轉換為byte []到等待POST Base64Binary流的ASP.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端)?

謝謝! 尼古拉斯。

我之前遇到過類似的問題。 我在Android上實現了一個代碼,使用Base64進行SHA-1哈希處理。

我在.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;
     }
  }

這對我有用,我可以正確計算我的字節數組的哈希值。

希望這會給你一些想法,

干杯

祝一切順利

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM