可能なアプリケーションをテストしようとしています。これは、既定のページでxmlファイルを受信するASP.netサイトです。 クライアントは、ファイルを含むHTTP Postを生成するアプリケーションプログラムになります。ファイルをAsp.netに送信
UIの関与はありません。
プロトタイプAsp.Net Web Application(Framework 4.5.2)とそれを実行するWinformアプリケーションを作成しました。
私はWinformアプリケーションですべての方法でHTTPポスティングコードを試しましたが、WebApp default.aspxがヒットしてもペイロードに到達できません。
これには含まれています:
テストアプリがファイルを読み込むと、文字列を投稿。 WebページのStreamReaderは、Request.InputStreamを読み取ると空の文字列を生成します。
WebClient.UpLoadFileの試行。 Request.Filesコレクションは空です。
Postmanとパラメータ付きPOSTを使用すると、StreamReaderシナリオが機能します。すなわち ファイルの本文: "opennodeこれはノードのクローズノードです"はxml文字列出力を生成します。
私は、WebページをホストするためにIDEを使用していることを言及する必要があります。これは、動作に何らかの影響がある場合に備えてください。
アプリとサイト間の自動転送が必要な場合、これに取り組む正しい方法は何ですか?
私は通常、ウェブサービスを提供しますが、ウェブサイトの消費者はこれが過度のものだと思って、そのファイルでURLをヒットしたいと考えています。
WebClient試行のアプリケーションコードは次のとおりです。
private void OpenFile(string _file)
{
// WEBCLIENT TRY
using (WebClient client = new WebClient())
{
client.UploadFile("http://localhost:21726/Default.aspx", _file);
}
}
ASP.NET CODE 'Webクライアントが受信は、' マイクロソフトWebclient.UploadFile例(下記)からのサンプルコードように変更さ
private void ProcessData(HttpRequest request)
{
try
{
// WEB CLIENT RECEIVE ATTEMPT
foreach (string f in Request.Files.AllKeys)
{
HttpPostedFile file = Request.Files[f];
file.SaveAs("c:\\inetpub\\test\\UploadedFiles\\" + file.FileName);
}
catch (Exception ex)
{
string message = ex.Message;
throw;
}
}
Webページに従います。 動作の変更はありません。 これはWinAppテスターでなければなりません。
<%@ Import Namespace="System"%>
<%@ Import Namespace="System.IO"%>
<%@ Import Namespace="System.Net"%>
<%@ Import NameSpace="System.Web"%>
<Script language="C#" runat=server>
void Page_Load(object sender, EventArgs e) {
foreach(string f in Request.Files.AllKeys) {
HttpPostedFile file = Request.Files[f];
file.SaveAs("c:\\inetpub\\test\\UploadedFiles\\" + file.FileName);
}
}
</Script>
<html>
<head></head>
<body>
<p> Upload complete. </p>
</body>
</html>
特定の質問と一緒に動作しないコードを追加する必要があります。コードを提供しなければ、あなた自身を手助けするのは難しい(自分で書いていない) –
Webclientのためにコードスニペットが追加された。 –