C# HttpContext에서 context 파라메터의 입력 형태가 어떻게 되나요?
코드 구현은 아래와 같습니다.
첫 줄에 ProcessRequest(HttpContext context) 구현 부분에 context 입력 형태를 확인하고 싶습니다.
http://192.168.100.239/DocComplianceSDK/Download.ashx?token=a58af231-219a-482e-98ab-e178e7a1e853&fileName=GEN_CK_Administrative%20Document_0011_0.1.docx
위에 처럼 token, fileName을 만들어서 던져주는데도 코드 마지막 라인의 else 구문으로 진입되서 'No file token specified." 를 출력합니다.
JAVA Client에서 C# Download.ashx로 요청을 보내는 구조입니다.
입력 형태를 어떻게 해야지 token과 fileName을 인식할까요?
public void ProcessRequest(HttpContext context)
{
TransferFileInfo transferFileInfo;
if (context.Items.Contains("token"))
{
string item = (string)context.Items["token"];
string str = (string)context.Items["fileName"];
DownloadRequest downloadRequest = FileDownloadPool.Instance[item];
if ((downloadRequest == null ? false : !downloadRequest.IsExpired()))
{
FileTransfer fileTransfer = new FileTransfer();
try
{
transferFileInfo = fileTransfer.ProcessDownloadRequest(downloadRequest);
}
catch (Exception exception1)
{
Exception exception = exception1;
context.Response.StatusCode = 403;
context.Response.StatusDescription = exception.Message;
context.Response.ContentType = "text/xml";
context.Response.Write(this.CreateErrorResponse(context.Response.StatusDescription));
return;
}
try
{
context.Response.ContentType = transferFileInfo.ContentType;
context.Response.AddHeader("content-disposition", string.Concat("attachment;filename=", (str == null ? transferFileInfo.FileName : str)));
context.Response.WriteFile(transferFileInfo.Path);
}
catch (Exception exception3)
{
Exception exception2 = exception3;
context.Response.StatusCode = 500;
context.Response.StatusDescription = "Internal error";
context.Response.ContentType = "text/xml";
context.Response.Write(this.CreateErrorResponse(exception2.Message));
}
}
else
{
context.Response.StatusCode = 403;
context.Response.StatusDescription = "The file token is not valid.";
context.Response.ContentType = "text/xml";
context.Response.Write(this.CreateErrorResponse(context.Response.StatusDescription));
}
}
else
{
context.Response.StatusCode = 403;
context.Response.StatusDescription = "No file token specified.";
context.Response.ContentType = "text/xml";
context.Response.Write(this.CreateErrorResponse(context.Response.StatusDescription));
}
위 부분을 아래와 같이 바꿔서 확인해보시기 바랍니다.