我正在尝试连接到需要身份验证的Rails应用程序服务器.我在桌面应用程序上使用Jakarta HTTP Client for Java,它可以100%运行.但是当在Android模拟器上执行完全相同的代码时,我得到一个IOException.
这是代码,如果有人可以帮我弄清楚为什么它会抛出IOException,我将不胜感激!
private boolean login()
{
String username, password;
DefaultHttpClient client;
AuthScope scope;
Credentials myCredentials;
CredentialsProvider provider;
HttpEntity entity;
String line;
BufferedReader reader;
InputStream instream;
//Declare & Create the HTTP Client
client = new DefaultHttpClient();
//Create our AuthScope
scope = new AuthScope("10.19.9.33", 3000);
username = "admin"
password = "pass"
//Set Credentials
myCredentials = new UsernamePasswordCredentials( username, password );
//Set Provider
provider = new BasicCredentialsProvider();
provider.setCredentials(scope, myCredentials);
//Set Credentials
client.setCredentialsProvider( provider );
String url = "http://10.19.9.33:3000/users/show/2";
HttpGet …Run Code Online (Sandbox Code Playgroud) 我似乎在使用C#检索XML值时遇到问题,我知道这是因为我对C#和.XML的知识非常有限.
我得到了以下XML文件
<PowerBuilderRunTimes>
<PowerBuilderRunTime>
<Version>12</Version>
<Files>
<File>EasySoap110.dll</File>
<File>exPat110.dll</File>
<File>pbacc110.dll</File>
</File>
</PowerBuilderRunTime>
</PowerBuilderRunTimes>
Run Code Online (Sandbox Code Playgroud)
我将处理XML文件,并确保文件夹中存在的每个文件(这是简单的部分).这是我难以处理的XML文件的处理.这是我到目前为止所做的:
var runtimeXml = File.ReadAllText(string.Format("{0}\\{1}", configPath, Resource.PBRuntimes));
var doc = XDocument.Parse(runtimeXml);
var topElement = doc.Element("PowerBuilderRunTimes");
var elements = topElement.Elements("PowerBuilderRunTime");
foreach (XElement section in elements)
{
//pbVersion is grabbed earlier. It is the version of PowerBuilder
if( section.Element("Version").Value.Equals(string.Format("{0}", pbVersion ) ) )
{
var files = section.Elements("Files");
var fileList = new List<string>();
foreach (XElement area in files)
{
fileList.Add(area.Element("File").Value);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是字符串列表只填充了一个值"EasySoap110.dll",其他一切都被忽略了.有人可以帮助我,因为我不知所措.
我似乎在将字节数组(包含word文档中的文本)转换为LPTSTR(wchar_t*)对象时遇到问题.每次代码执行时,我都会收到一堆不需要的Unicode字符.
我认为这是因为我没有在某个地方进行正确的调用,或者没有正确使用变量,但不太确定如何处理这个问题.希望这里有人可以指导我朝着正确的方向前进.
我们首先调用C#代码来打开Microsoft Word并将文档中的文本转换为字节数组.
byte document __gc[];
document = word->ConvertToArray(filename);
Run Code Online (Sandbox Code Playgroud)
文件内容如下:
{84, 101, 115, 116, 32, 68, 111, 99, 117, 109, 101, 110, 116, 13, 10}
Run Code Online (Sandbox Code Playgroud)
最终成为以下字符串:"测试文档".
我们的下一步是分配内存以将字节数组存储到LPTSTR变量中,
byte __pin * value;
value = &document[0];
LPTSTR image;
image = (LPTSTR)malloc( document->Length + 1 );
Run Code Online (Sandbox Code Playgroud)
一旦我们执行了开始分配内存的行,我们的图像变量就会被一堆不需要的Unicode字符填充:
?????????????????
Run Code Online (Sandbox Code Playgroud)
然后我们做一个memcpy来传输所有数据
memcpy(image,value,document->Length);
Run Code Online (Sandbox Code Playgroud)
这只会导致出现更多不需要的Unicode字符:
?????????????????
Run Code Online (Sandbox Code Playgroud)
我认为我们遇到的问题要么与我们如何在字节数组中存储值有关,要么与我们将数据从字节数组复制到LPTSTR变量有关.任何帮助解释我做错了什么,或任何指向我正确方向的任何帮助将不胜感激.