Chinaunix首页 | 论坛 | 博客
  • 博客访问: 192685
  • 博文数量: 41
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 275
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-24 19:36
文章存档

2017年(17)

2016年(13)

2015年(4)

2014年(6)

2011年(1)

我的朋友

分类: LINUX

2016-12-11 15:04:05


在上传时nginx返回了413错误,查看log文件,显示的错误信息是:”413 Request Entity Too Large”, 需要做以下设 置:

打开nginx主配置文件nginx.conf,找到http{}段,增加 client_max_body_size的相关设置, 这个值默认是1m,可以增加到3m以增加提高文件大小限制;

      client_max_body_size    3m;
      client_body_buffer_size  128k;
      proxy_connect_timeout    600;
      proxy_read_timeout      600;
      proxy_send_timeout      6000;
      proxy_buffer_size        16k;
      proxy_buffers            4 64k;
      proxy_busy_buffers_size 64k;
      proxy_temp_file_write_size 64k;

如果运行的是php,那么还要检查php.ini,这个大小client_max_body_size要和php.ini中的如下值的最大值一致或者稍大,这样就不会因为提交数据大小不一致出现的错误。

      post_max_size = 6M
      upload_max_filesize = 2M

必须先将 ContentLength 字节写入请求流,然后再调用 [Begin]GetResponse。解决方法

2016-08-16 17:45 by NO.27, 465 阅读, 0 评论, 收藏, 编辑

当在后台实现POST请求的时候,出现如下错误:

 必须先将 ContentLength 字节写入请求流,然后再调用 [Begin]GetResponse。

或者是如下错误:

上述是因为由于我们使用的是代理服务器,那个还有一种原因不能忽略,就是如果目标网页的HTTP的版本号为1.0或之前的版本,而代理服务器的本版为1.1或以上。这么这是,代理服务器将不会转发我们的Post请求,并报错?(417) Unkown

再看wireshark的包信息,其中明确可以看出,协议的版本号为HTTP1.1。这样,我们基本上可以确定?(417) Unkown的原因:

握手失败,请求头域类型不匹配。

解决方法:

在配置文件加入

复制代码






           "false" />





复制代码

或者在请求前加入如下代码:

System.Net.ServicePointManager.Expect100Continue = false;//默认是true,所以导致错误

 

附加两种请求方法:

方法一:

复制代码
        public ActionResult b()
        {
            System.Net.ServicePointManager.Expect100Continue = false; string Url = ""; string PostDataStr = string.Format("userName={0}&pwd={1}","a","b");
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = PostDataStr.Length;
            
            StreamWriter write = new StreamWriter(request.GetRequestStream(),Encoding.ASCII);
            write.Write(PostDataStr);
            write.Flush();
            HttpWebResponse response = (HttpWebResponse)request.GetResponse(); string encoding = response.ContentEncoding; if (encoding==null||encoding.Length<1) {
                encoding = "UTF-8";
            }
            StreamReader reader = new StreamReader(response.GetResponseStream(),Encoding.GetEncoding(encoding)); string retstring = reader.ReadToEnd(); return Content(retstring);
        }
复制代码

方法二:

复制代码
        public async Task a()
        {
            System.Net.ServicePointManager.Expect100Continue = false; string postUrl = ""; var postContent = new FormUrlEncodedContent(new[]
                    { new KeyValuePair<string, string>("userName", "a"), new KeyValuePair<string, string>("pwd","b")

                    }); var httpResponse = await new HttpClient().PostAsync(postUrl, postContent); var content = await httpResponse.Content.ReadAsStringAsync(); return Content(content);
        }
复制代码

 


--------------------------------------分割线 --------------------------------------

 6.2实战部署Nginx+MySQL+PHP 

使用Nginx搭建WEB服务器 

搭建基于Linux6.3+Nginx1.2+PHP5+MySQL5.5的Web服务器全过程 

CentOS 6.3下Nginx性能调优 

CentOS 6.3下配置Nginx加载ngx_pagespeed模块 

CentOS 6.4安装配置Nginx+Pcre+php-fpm 

Nginx安装配置使用详细笔记 

Nginx日志过滤 使用ngx_log_if不记录特定日志 

阅读(2646) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~