Webサービスに依存してデータを取得するサードパーティ製のWindows 8/8.1アプリケーションを開発中です。私たちにはアプリケーションのソースコードがありますが、Webサービス用のソースコードはありませんので、再構築する必要があります。問題を複雑にするために、私はいくつかのデバイスにサイドロードされていたので、アプリケーションを変更することはできません。MVCを変更する方法XDocument.Loadで動作するオブジェクトを返すために取得
WebサービスのDLLを逆コンパイルすることはできましたが、それは私を動作ポイントにしませんでした。今のハードルは、XDocument.Loadが返されたストリームを処理できないようです。ここで
はAppCodeです:
public async Task<CustomerModel> ReadDataFromXml(string address)
{
var client = new HttpClient();
var response = await client.GetAsync(address);
// check that response was successful or throw exception
response.EnsureSuccessStatusCode();
var streamResponse = await response.Content.ReadAsStreamAsync();
var xDocumentObject = XDocument.Load(streamResponse);
var contents = from contact in xDocumentObject.Descendants(Constants.CUSTOMER_TAG)
select new {
...
私はApiControllerを実装MVC ASP.NET Webアプリケーションで構築されたテンプレートを使用してサービスを構築するためにVS 2013を使用しています。
古いコードは、UTF8Encodingでそれをシリアル化した後、私は、これは現在のIEnumerableを返すGet呼び出しを通じて返さ必要があると考えている新しいコード
public IEnumerable<Customer> Get(string activationcode)
{
return _handler.GetCustomerData(activationcode);
}
HttpContext.Current.Response.Write(strMessage);
を経由して結果を返しました。
は、私は文字列を返すし、テキストのXMLserializedバージョンを返すために、Getステートメントを変更してみまし呼び出すゲット
もう一つの文字列を返す試みたと信じています。
private string Serialize(Customer cus)
{
try
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(Customer));
XmlTextWriter xmlTextWriter = new XmlTextWriter((Stream)new MemoryStream(), Encoding.UTF8);
xmlSerializer.Serialize((XmlWriter)xmlTextWriter, (object)cus);
return this.UTF8ByteArrayToString(((MemoryStream)xmlTextWriter.BaseStream).ToArray());
}
catch (Exception ex)
{
return string.Empty;
}
}
しかし、それが返され、 "データはルートレベルで無効である、ライン1、ポジション1"
TLDR。 GET StatementでWebアプリケーションのXDocument.Loadが正しく機能するように結果を返す方法はありますか?
「HttpClient」から取得したデータをjsonに送信することはできますか? – csharpfolk
これを確認してくださいので、答え:http://stackoverflow.com/questions/31115545/consuming-xml-using-httpclient-from-webapi – csharpfolk
これはテキストとしてのリターンです。 "<?xml version = \" 1.0 \ "encoding = \" utf-8 \ "?> CNORRIS Activation_Code> 2016-02-10T18:00:00 Activated_Date> 0001-/2001/XMLSchema \ "> 64 Customer_Id> 01-01T00:00:00 EXPIRY_DATE>偽 偽 偽 偽 IsChatEnabled>偽 IsMoreVideosEnabled> " –