HttpWebRequest 无法从容器 Dotnet 内部调用 API

问题描述 投票:0回答:1
            HttpWebRequest WebReq = (HttpWebRequest)WebRequest.Create(requestendpoint);
            // Set the Headers
            WebReq.Method = methodType.ToUpper();
            WebReq.Headers.Add("Authorization", authorisation);
            WebReq.Headers.Add("Cache-Control", "no-cache");
            WebReq.Date = dateValue; // use datetime value GMT time
            if (content != null)
            {
                //setting content
                WebReq.Headers.Add("Content-Type", CONTENT_TYPE_PREFIX);
                WebReq.Headers.Add("Content-Length", content.Length.ToString());
                Encoding encoding = Encoding.UTF8;
                WebReq.ContentType = CONTENT_TYPE_PREFIX;
                WebReq.ContentLength = content.Length;

                Stream newStream = WebReq.GetRequestStream(); //open connection
                newStream.Write(Encoding.UTF8.GetBytes(content), 0, content.Length); // Send the data.
                newStream.Close();
            }

            // Get the Response - Status OK
            HttpWebResponse WebResp = (HttpWebResponse)WebReq.GetResponse();
            // Status information about the request

我无法从 docker 容器内部调用 API,但这段代码在我本地的 windows visual studio 上运行良好。我已经检查了 docker 内部的所有东西,因为其他 API 正在工作,docker 可以访问互联网并且端口也暴露了。

我找到了一个 github 线程,但它适用于 .net 1.1 我正在使用 .net 3.1,但仍在努力寻找解决方案。

docker api .net-core httpwebrequest dotnet-httpclient
1个回答
0
投票

我尝试了多种调用 API 的方法,但它仅使用 HttpWebResponse 工作,但我构建 docker 图像相同的代码不起作用。 在这里输入链接描述

© www.soinside.com 2019 - 2024. All rights reserved.