1
답변 1 C# HttpContext에서 context 파라메터의 입력 형태가 어떻게 되나요? 답변 1 (/p/java)
코드 구현은 아래와 같습니다.  첫 줄에 ProcessRequest(HttpContext context) 구현 부분에 context 입력 형태를 확인하고 싶습니다.  http://192.168.100.239..

코드 구현은 아래와 같습니다. 

첫 줄에 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));
            }

 

C# JAVA
+
jwkoh 님께서 15일 전에 C#에 올린 질문

C# HttpContext에서 context 파라메터의 입력 형태가 어떻게 되나요?

1
답변 1 C# HttpContext에서 context 파라메터의 입력 형태가 어떻게 되나요? 답변 1 (/p/java)
코드 구현은 아래와 같습니다.  첫 줄에 ProcessRequest(HttpContext context) 구현 부분에 context 입력 형태를 확인하고 싶습니다.  http://192.168.100.239..

코드 구현은 아래와 같습니다. 

첫 줄에 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));
            }

 

C# JAVA
+
jwkoh 님께서 15일 전에 C#에 올린 질문

1개의 답변

1
[답변]C# HttpContext에서 context 파라메터의 입력 형태가 어떻게 되나요? 1 (/p/java)
if (context.Items.Contains("token")) 위 부분을 아래와 같이 바꿔서 확인해보시기 바랍니다. if (context.Current.Items.Contains("token"))  
if (context.Items.Contains("token"))

위 부분을 아래와 같이 바꿔서 확인해보시기 바랍니다.

if (context.Current.Items.Contains("token"))

 

사탕 주기
+
kimho 님께서 13일 전에 C#에 올린 글
1
 
jwkoh 9일 전
소스가 없는 DLL이라 코드 수정이 어렵습니다.
여러 가지 확인을 해보니 파라메터 전송에 문제가 없는 것 같습니다.
내부 로직에서 세션과 관련된 오류로 보여 다른 관점에서 문제 원인을 분석하는 중입니다.
답변 감사합니다.
조회수 196
답글 1
URL