远程服务器返回403禁止 [英] The remote server returned 403 forbidden

查看:530
本文介绍了远程服务器返回403禁止的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


我使用以下代码获取响应,得到登录服务响应,但无法从url(http://localhost:8080/geonetwork/srv/en/xml.metadata.get)获取响应,最终我得到了错误403禁止

Hi
i used the following code to get the response i got the response for login service but cannot get the response from the url (http://localhost:8080/geonetwork/srv/en/xml.metadata.get) and i ended up getting the error 403 forbidden

protected void Page_Load(object sender, EventArgs e)
    {
        string RequestXML = "<request>" +
                            "<username>admin</username>" +
                            "<password>admin</password></request>";
        string ServerURL = "http://localhost:8080/geonetwork/srv/en/xml.user.login";
        string ResponseXML = postRequest(RequestXML, ServerURL);
         //= ResponseXML.ToString();
        string ServerURL1 = "http://localhost:8080/geonetwork/srv/en/xml.metadata.get";
        string RequestXML1 = "<request>" +
            "<uuid>5915639e-777c-4339-93ad-c4037f2eeb77</uuid>" +
            "</request>";
        string ResponseXML1 = postRequest(RequestXML1, ServerURL1);
        Label1.Text = ResponseXML1.ToString();
    }
    private string postRequest(String RequestXML, string ServerURL)
    {
        int timeout = 90000;
        int connectionLimit = 10;
        string responseXML = string.Empty;
        try
        {
            HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(ServerURL);
            webRequest.Timeout = timeout;
            webRequest.KeepAlive = true;
            webRequest.ServicePoint.ConnectionLimit = connectionLimit;
            webRequest.Method = "POST";
            webRequest.ContentType = "text/xml";
            byte[] byteArray = Encoding.UTF8.GetBytes(RequestXML);
            Stream strm = webRequest.GetRequestStream();
            strm.Write(byteArray, 0, byteArray.Length);
            strm.Close();
            HttpWebResponse webResponse =(HttpWebResponse)webRequest.GetResponse();
            Encoding enc = Encoding.GetEncoding("utf-8");
            StreamReader reader = new StreamReader(webResponse.GetResponseStream(), enc);
            responseXML = reader.ReadToEnd();
            reader.Close();
            webResponse.Close();
            
        }
        catch (Exception ex)
        {
            throw (ex);
        }
        return responseXML;
    }



这是我用来纠正我去过的地方的代码g



here is the code i used pl correct me where i went worng

推荐答案

在您的第二个请求中,您可能必须向服务器发送证明您已登录的证据已验证.我想信息以某种方式存储在对您的登录请求的响应中(您的变量ResponseXML);它的某些部分必须添加到第二个请求(您的变量RequestXML1)中.
In your second requext, you''ll likely have to send proof to the server that your login is valid. I guess that information is somehow stored in the response to your login request (your variable ResponseXML); some part of it must be added to the second request (your variable RequestXML1).


这篇关于远程服务器返回403禁止的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆