gpt4 book ai didi

c# - Visual Studio 报告并非所有代码路径都返回值,即使它们返回值

转载 作者:可可西里 更新时间:2023-11-01 16:47:12 26 4
gpt4 key购买 nike

我在 NETMF C# 中有一个我正在编写的 API,其中包含一个发送 HTTP 请求的函数。对于熟悉 NETMF 的人来说,这是“webClient”示例的重大修改版本,它是一个演示如何提交 HTTP 请求并接收响应的简单应用程序。在示例中,它只是打印响应并返回 void,。然而,在我的版本中,我需要它来返回 HTTP 响应。

出于某种原因,Visual Studio 报告并非所有代码路径都返回一个值,尽管据我所知,它们确实返回了一个值。

这是我的代码...

  /// <summary>
/// This is a modified webClient
/// </summary>
/// <param name="url"></param>
private string httpRequest(string url)
{
// Create an HTTP Web request.
HttpWebRequest request = HttpWebRequest.Create(url) as HttpWebRequest;

// Set request.KeepAlive to use a persistent connection.
request.KeepAlive = true;

// Get a response from the server.
WebResponse resp = request.GetResponse();

// Get the network response stream to read the page data.
if (resp != null)
{
Stream respStream = resp.GetResponseStream();
string page = "";
byte[] byteData = new byte[4096];
char[] charData = new char[4096];
int bytesRead = 0;
Decoder UTF8decoder = System.Text.Encoding.UTF8.GetDecoder();
int totalBytes = 0;

// allow 5 seconds for reading the stream
respStream.ReadTimeout = 5000;

// If we know the content length, read exactly that amount of
// data; otherwise, read until there is nothing left to read.
if (resp.ContentLength != -1)
{
for (int dataRem = (int)resp.ContentLength; dataRem > 0; )
{
Thread.Sleep(500);
bytesRead = respStream.Read(byteData, 0, byteData.Length);

if (bytesRead == 0)
throw new Exception("Data laes than expected");

dataRem -= bytesRead;

// Convert from bytes to chars, and add to the page
// string.
int byteUsed, charUsed;
bool completed = false;
totalBytes += bytesRead;
UTF8decoder.Convert(byteData, 0, bytesRead, charData, 0,
bytesRead, true, out byteUsed, out charUsed,
out completed);
page = page + new String(charData, 0, charUsed);
}

page = new String(System.Text.Encoding.UTF8.GetChars(byteData));
}
else
throw new Exception("No content-Length reported");

// Close the response stream. For Keep-Alive streams, the
// stream will remain open and will be pushed into the unused
// stream list.
resp.Close();
return page;
}
}

有什么想法吗?谢谢...

最佳答案

很明显,如果 (resp == null) 那么你仍然需要返回一些东西......

关于c# - Visual Studio 报告并非所有代码路径都返回值,即使它们返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2946970/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com