应用程序中未找到服务器 404 以从 api 读取数据但不传递参数它可以工作

Posted

技术标签:

【中文标题】应用程序中未找到服务器 404 以从 api 读取数据但不传递参数它可以工作【英文标题】:Server Not Found 404 in Application to read data from api But without passing parameters it works 【发布时间】:2014-05-12 13:11:43 【问题描述】:

我还有一个与我正在研究的 api 相关的问题:p

我的问题是,当 url 全部传递时,我用来读取数据的应用程序运行良好,但如果我想传递通用 url + 参数,它不会......

带有完整 URL 的代码 私人无效 btn_Api_Click(对象发送者,EventArgs e)

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://MyIP/api/Employee/?FirstName=Jorge");
        request.Method = "POST";
        string postData = "";
        byte[] data = Encoding.UTF8.GetBytes(postData);
        request.ContentType = "application/x-www-form-urlencoded";
        request.Accept = "application/json";
        request.ContentLength = data.Length;


        using (Stream requestStream = request.GetRequestStream())
        
            requestStream.Write(data, 0, data.Length);
        

        try
        
            using (WebResponse response = request.GetResponse())
            
                var responseValue = string.Empty;


                // grab the response  
                using (var responseStream = response.GetResponseStream())
                
                    using (var reader = new StreamReader(responseStream))
                    
                        responseValue = reader.ReadToEnd();
                    
                
                if (responseValue != "")
                
                    string _txtFileNew = @"C:\Users\Jorge.Leite\Documents\teste\" + txt_First.Text + ".txt"; //+txt_Last.Text + ".txt";
                    StreamWriter _srEannew = new StreamWriter(_txtFileNew);
                    _srEannew.WriteLine(responseValue);
                    _srEannew.Close();

                
            
        
        catch (WebException ex)
        
            // Handle error
        

后面带有 Url + 参数的代码 PS:postData 传递了正确的字符串 ("?FirstName=Jorge") Jorge 是输入名称

private void btn_Api_Click(object sender, EventArgs e)

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create("MyIP/api/Employee/");
        request.Method = "POST";
        string postData = string.Format("?FirstName=" + txt_First.Text);
        byte[] data = Encoding.UTF8.GetBytes(postData);
        request.ContentType = "application/x-www-form-urlencoded";
        request.Accept = "application/json";
        request.ContentLength = data.Length;

使用此代码时出现异常服务器未找到 404

我真的不知道这是怎么回事:\

提前谢谢你

【问题讨论】:

【参考方案1】:

使用 POST 方法的 Web API 不像使用 GET 方法那样流畅。

查看此其他链接以了解更多信息Reading FromUri and FromBody at the same time

【讨论】:

我着火了,我提出的所有问题都用简单的东西来解释。由于某种原因我现在不记得了,我从 post 方法中取出了 [FromBody],我更新并发布了它们,现在一切正常。上帝啊,我觉得整个下午都这么愚蠢,非常感谢。

以上是关于应用程序中未找到服务器 404 以从 api 读取数据但不传递参数它可以工作的主要内容,如果未能解决你的问题,请参考以下文章

如何将不存在的数据页面重定向到 Codeigniter 中未找到的页面?

com.google.api.client.googleapis.json.GoogleJsonResponseException: 404 未找到

如何设置凭据以从 GCE VM 命令行使用 Gmail API?

解决开发中未发生的暂存中的 nginx 404 错误

Paypal Refund Sale REST API 返回:远程服务器返回错误:(404)未找到

HttpClient 返回 404 未找到