Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Java字节转换为VB.NET字节时出现异常(WebService)_Java_Android_.net_Web Services - Fatal编程技术网

将Java字节转换为VB.NET字节时出现异常(WebService)

将Java字节转换为VB.NET字节时出现异常(WebService),java,android,.net,web-services,Java,Android,.net,Web Services,我正在尝试使用Java 1.5从Android 2.3应用程序向ASP.NET WebService方法发送一个JSON字符串,该字符串转换为字节[],该方法正在等待POST Base64二进制流 以下是我对JSON字符串进行编码的Java代码: String encoded = Base64.encodeToString(me.getValue().getBytes(), Base64.DEFAULT); me是我的JSON字符串 以下是我从ASP.NET获得的错误: System.Argu

我正在尝试使用Java 1.5从Android 2.3应用程序向ASP.NET WebService方法发送一个JSON字符串,该字符串转换为字节[],该方法正在等待POST Base64二进制流

以下是我对JSON字符串进行编码的Java代码:

String encoded = Base64.encodeToString(me.getValue().getBytes(), Base64.DEFAULT);
me是我的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哈希

以下是我的服务器端代码(.asmxweb服务)

这对我很有效,我可以正确地计算字节数组的散列

希望这能给你一些想法

干杯

祝你一切顺利

   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;
     }
  }