Quantcast
Channel: Active questions tagged rest - Stack Overflow
Viewing all articles
Browse latest Browse all 3663

Getting 400 http bad request error while accessing WCF rest service using GET

$
0
0

the Exact error is System.Net.WebException: The Remote server returned an Error: (400) Bad Request. at system.Net.HttpWebRequest.GetResponse()i have a WCF rest service hosted in IIS..I have created a simple WPF app with just a button..now i need to access the methods in my WCF service using get..

This is the code For WPF

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Imaging;using System.Windows.Navigation;using System.Windows.Shapes;using System.Net;using System.Runtime.Serialization;using System.Xml;namespace RestFulDemo{    /// <summary>    /// Interaction logic for MainWindow.xaml    /// </summary>    public partial class MainWindow : Window    {        public MainWindow()        {            InitializeComponent();        }        private void RestDemo_Click(object sender, RoutedEventArgs e)        {            string msg="";            HttpWebResponse resp=null;            //WebRequest my = WebRequest.Create(@"http://www.google.com");            //MessageBox.Show(my.ToString());            WebRequest myRequest = WebRequest.Create(@"http://localhost/REST/RestServicesSample.svc/XmlData/sad");            MessageBox.Show(myRequest.ToString());            //Provides response from a URI.            myRequest.Method = "GET";            myRequest.ContentType = @"text/xml; charset=utf-8";            try            {                 resp=myRequest.GetResponse() as HttpWebResponse;            }            catch (WebException c)            {                MessageBox.Show(c.ToString());            }            if (resp.StatusCode == HttpStatusCode.OK)            {                XmlDocument myXMLDocument = new XmlDocument();                XmlReader myXMLReader = new XmlTextReader(resp.GetResponseStream());                myXMLDocument.Load(myXMLReader);                msg= myXMLDocument.InnerText;            }            MessageBox.Show(msg);        }    }}

why do i get an error in myRequest.GetResponse()..?this is my .svc.cs file

using System.Collections.Generic;using System.Linq;using System.Runtime.Serialization;using System.ServiceModel;using System.Text;using System.ServiceModel.Web;namespace RestServices{    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IRestServicesSample" in both code and config file together.    [ServiceContract]    public interface IRestServicesSample    {        [OperationContract]        [WebGet]        ////[WebInvoke(Method = "GET",        ////    ResponseFormat = WebMessageFormat.Xml,        ////    BodyStyle = WebMessageBodyStyle.Wrapped,        ////    UriTemplate = "xml/{id}")]       string XmlData(string id);        //void DoWork();        [OperationContract]        [WebInvoke(Method = "GET",            ResponseFormat = WebMessageFormat.Json,            BodyStyle = WebMessageBodyStyle.Wrapped,            UriTemplate = "json/{id}")]        string JsonData(string id);    }}

---this is the web.config file

<?xml version="1.0"?><configuration><system.web><compilation debug="true" targetFramework="4.0" /><webServices><protocols><add name="HttpGet"/><add name="HttpPost"/></protocols></webServices></system.web><system.serviceModel><services><service name="RestServices.RestServiceSample" behaviorConfiguration="ServiceBehaviour"><endpoint behaviorConfiguration="WebBehavior" binding="webHttpBinding" contract="RestServices.IRestServiceSample"></endpoint></service>`enter code here`</services><behaviors><serviceBehaviors><behavior name="ServiceBehaviour"><!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment --><serviceMetadata httpGetEnabled="true"/><!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information --><serviceDebug includeExceptionDetailInFaults="false"/></behavior></serviceBehaviors><endpointBehaviors><behavior name="WebBehavior"><webHttp/></behavior></endpointBehaviors></behaviors><serviceHostingEnvironment multipleSiteBindingsEnabled="true" /></system.serviceModel><system.webServer><modules runAllManagedModulesForAllRequests="true"/></system.webServer></configuration>

Viewing all articles
Browse latest Browse all 3663

Trending Articles