首页新闻找找看学习计划

POST分包提交失败,怎么修改成不分包呢,

0
悬赏园豆:100 [待解决问题]

using System;
using System.Text;
using System.Net;
using System.IO;
namespace HelloWorldApplication
{
class HelloWorld
{
static void Main(string[] args)
{
/* 我的第一个 C# 程序/
string ew = PostWebRequest("http://154.206.44.193:8080", "{"id":10005,"arg":{"gameid":0}}");
/
我的第一个 C# 程序*/
Console.WriteLine("我的第一个 C# 程序");
Console.WriteLine(ew);
Console.ReadKey();

    }
    public static string PostWebRequest(string postUrl, string paramData)
    {
        string ret = string.Empty;
        try
        {
            Encoding dataEncode = System.Text.Encoding.GetEncoding("utf-8");
            byte[] byteArray = dataEncode.GetBytes(paramData); //转化
            HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(new Uri(postUrl));
            webReq.Method = "POST";
            webReq.ContentType = "application/x-www-form-urlencoded";
            webReq.ContentLength = byteArray.Length;
            webReq.Timeout = 30000;
            webReq.SendChunked = false;
            webReq.KeepAlive = false;
            Stream newStream = webReq.GetRequestStream();
            newStream.Write(byteArray, 0, byteArray.Length);//写入参数
            newStream.Close();
            HttpWebResponse response = (HttpWebResponse)webReq.GetResponse();
            StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.Default);
            ret = sr.ReadToEnd();
            sr.Close();
            response.Close();
            newStream.Close();
        }
        catch (Exception ex)
        {
            return "响应超时";
        }
        return ret;
    }
}

}
//这个地址是C++接口调用地址,分包提交会失败,成功率不能达到100%,测试过期时间调长,也是一样
//在线工具http://www.dooccn.com/csharp/ 测试可以
//SendChunked = false;
//类型:System.Boolean如果发送了分块请求,则为 true;否则为 false。默认值为 false。
//以上测试没效果

Trr,song的主页 Trr,song | 初学一级 | 园豆:16
提问于:2019-11-01 22:43
< >
分享
所有回答(1)
0

你指的分包是TCP分包,还是http请求分成两次?
如果是tcp的很难避免,数据大了必分
http动作分步的话, 参考:https://docs.microsoft.com/zh-cn/dotnet/api/system.net.servicepoint.expect100continue

pencile | 园豆:503 (小虾三级) | 2019-11-04 17:08

这个接口可以试试,在有些工具上是可以执行的,但是在执行的时候,有的工具可以,有的工具就是失败,同样都是post,如果别的工具不分包,C#做不到,感觉没道理

支持(0) 反对(0) Trr,song | 园豆:16 (初学一级) | 2019-11-04 17:22

@Trr,song: 那你试了.expect100continue=false 了吗?

支持(0) 反对(0) pencile | 园豆:503 (小虾三级) | 2019-11-04 17:25

@pencile: 好的,晚上回去我试试

支持(0) 反对(0) Trr,song | 园豆:16 (初学一级) | 2019-11-04 17:30

@pencile: 你的意思是修改C++的接口接收吗?

支持(0) 反对(0) Trr,song | 园豆:16 (初学一级) | 2019-11-07 14:14

@pencile: myReq.ServicePoint.Expect100Continue = false;加了这个试过了,没用

支持(0) 反对(0) Trr,song | 园豆:16 (初学一级) | 2019-11-07 14:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册