我必须请求一个 URL,即“ http://192.168.220.12:5000”,java服务将在其中接收它,
以以下字符串为主体
<?xml version='1.0'?><!DOCTYPE svc_init SYSTEM 'ABCD.DTD'><svc_init ver='3.3.0'><hdr ver='3.3.0'><client><id>xxx</id><pwd>xxx</pwd></client></hdr><aaaa ver='3.3.0'><trans_id>1</trans_id><request_type type='2'/><l_hor_acc type='HIGH'/></aaaa></svc_init>
我可以在我的 Firefox 浏览器中使用 RESTClient 成功完成此操作,请参见下图: 但是当我通过以下 C# 代码发送它时,它给了我以下错误:
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(Unknown Source)
at Creader.run(Creader.java:42)
C#代码如下:
xmlData= "<?xml version='1.0'?><!DOCTYPE svc_init SYSTEM 'ABCD.DTD'><svc_init ver='3.3.0'><hdr ver='3.3.0'><client><id>xxx</id><pwd>xxx</pwd></client></hdr><aaaa ver='3.3.0'><trans_id>1</trans_id><request_type type='2'/><l_hor_acc type='HIGH'/></aaaa></svc_init>";
address = "http://192.168.220.12:5000";
using (var client = new WebClient())
{
client.UploadData(address , Encoding.ASCII.GetBytes(xmlData));
}
我在这里做错了什么?
我也尝试过,但没有任何效果。1) 使用另一种方法将 xmlData 转换为 byte []。2) 使用 Encoding.UTF8.GetBytes 而不是 Encoding.ASCII.GetBytes。3) 使用 client.UploadString(new Uri(mlcAddress), xmlData) 而不是 client.UploadData...