将Java字节转换为VB.NET字节时出现异常(WebService)
我正在尝试使用Java 1.5从Android 2.3应用程序向ASP.NET WebService方法发送一个JSON字符串,该字符串转换为字节[],该方法正在等待POST Base64二进制流 以下是我对JSON字符串进行编码的Java代码:将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
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;
}
}