【问题标题】:ASP.net System.Net.Webrequest to System.Net.Httpwebrequest errorASP.net System.Net.Webrequest 到 System.Net.Httpwebrequest 错误
【发布时间】:2016-01-05 05:57:26
【问题描述】:

我将vb.net 代码转换为c# 以使用给定的api 来启用短信功能,我的这部分代码'myWebRequest = System.Net.WebRequest.Create(sURL);' 出现此错误

ERROR

这是我的代码

protected void Button1_Click(object sender, EventArgs e)
    {
        HttpWebRequest myWebRequest = null;
        HttpWebResponse myWebResponse = null;
        try
        {
            string sURL = "sample/api.aspx";
            sURL = sURL + "?apiusername=" + HttpUtility.UrlEncode("123");
            sURL = sURL + "&apipassword=" + HttpUtility.UrlEncode("xyz");
            sURL = sURL + "&mobileno=" + HttpUtility.UrlEncode("6141234567");
            sURL = sURL + "&senderid=" + HttpUtility.UrlEncode("try");
            sURL = sURL + "&languagetype=" + "1";
            sURL = sURL + "&message=" + HttpUtility.UrlEncode("testing sms from api");
            myWebRequest = HttpWebRequest.Create(sURL);
            myWebResponse = myWebRequest.GetResponse();
            if (myWebResponse.StatusCode == HttpStatusCode.OK)
            {
                Stream oStream = myWebResponse.GetResponseStream;
                StreamReader oReader = new StreamReader(oStream);
                string sResult = oReader.ReadToEnd();
                if (long.Parse(sResult) > 0)
                {
                    Response.Write("success - MT ID :" + sResult);
                }
                else
                {
                    Response.Write("fail - Error code :" + sResult);
                }
            }
        }
        catch (Exception ex)
        {
            Response.Write("Some issue happen");
        }
        finally
        {
            if ((myWebResponse != null))
            {
                myWebResponse.Close();
            }
        }
    }

这是来自 VB.net 的主要代码

Imports System.Net

导入 System.IO

部分类 _Default 继承 System.Web.UI.Page

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim myWebRequest As HttpWebRequest = Nothing
    Dim myWebResponse As HttpWebResponse = Nothing
    Try
        Dim sURL As String = "sample/api.aspx"
        sURL = sURL & "?apiusername=" & HttpUtility.UrlEncode("123")
        sURL = sURL & "&apipassword=" & HttpUtility.UrlEncode("xyz")
        sURL = sURL & "&mobileno=" & HttpUtility.UrlEncode("6141234567")
        sURL = sURL & "&senderid=" & HttpUtility.UrlEncode("try")
        sURL = sURL & "&languagetype=" & "1"
        sURL = sURL & "&message=" & HttpUtility.UrlEncode("testing sms from api")
        myWebRequest = System.Net.WebRequest.Create(sURL)
        myWebResponse = myWebRequest.GetResponse()
        If myWebResponse.StatusCode = HttpStatusCode.OK Then
            Dim oStream As Stream = myWebResponse.GetResponseStream
            Dim oReader As StreamReader = New StreamReader(oStream)
            Dim sResult As String = oReader.ReadToEnd
            If Long.Parse(sResult) > 0 Then
                Response.Write("success - MT ID :" & sResult)
            Else
                Response.Write("fail - Error code :" & sResult)
            End If
        End If
    Catch ex As Exception
        Response.Write("Some issue happen")
    Finally
        If Not myWebResponse Is Nothing Then
            myWebResponse.Close()
        End If
    End Try
End Sub

结束类

【问题讨论】:

  • 我试过你的代码,似乎HttpWebRequest.Create()方法返回了WebRequest类型,导致错误。将您的 HttpWebRequest myWebRequest 更改为 WebRequest myWebRequest
  • 您也可以发布您的vb 代码吗?
  • ok 会更新我的帖子

标签: c# asp.net vb.net api


【解决方案1】:

情况是,HttpWebRequest 返回一个WebRequest 类型,但你的myWebRequestHttpWebRequest. 的一个类型

注意您的 VB 与 C# 行。两个myWebRequest 对象都是HttpWebRequest 类型。然而:

myWebRequest = HttpWebRequest.Create(sURL); <-- This is C#
myWebRequest = System.Net.WebRequest.Create(sURL) <-- This is VB.NET

从那里,您可以将 C# 代码更改为

myWebRequest = System.Net.WebRequest.Create(sURL)

【讨论】:

    【解决方案2】:
    protected void Button1_Click(object sender, EventArgs e)
    {
          HttpWebRequest myWebRequest = null;
          HttpWebResponse myWebResponse = null;
          try
          {
              string sURL = "sample/api.aspx";
              sURL = sURL + "?apiusername=" + HttpUtility.UrlEncode("123");
              sURL = sURL + "&apipassword=" + HttpUtility.UrlEncode("xyz");
              sURL = sURL + "&mobileno=" + HttpUtility.UrlEncode("6141234567");
              sURL = sURL + "&senderid=" + HttpUtility.UrlEncode("try");
              sURL = sURL + "&languagetype=" + "1";
              sURL = sURL + "&message=" + HttpUtility.UrlEncode("testing sms from api");
              myWebRequest = (HttpWebRequest)System.Net.WebRequest.Create(sURL);
              myWebResponse = (HttpWebResponse)myWebRequest.GetResponse();
              if (myWebResponse.StatusCode == HttpStatusCode.OK)
              {
                  Stream oStream = myWebResponse.GetResponseStream();
                  StreamReader oReader = new StreamReader(oStream);
                  string sResult = oReader.ReadToEnd();
                  if (long.Parse(sResult) > 0)
                  {
                      Response.Write("success - MT ID :" + sResult);
                  }
                  else
                  {
                      Response.Write("fail - Error code :" + sResult);
                  }
              }
          }
          catch (Exception ex)
          {
                Response.Write("Some issue happen");
          }
          finally
          {
              if ((myWebResponse != null))
              {
                    myWebResponse.Close();
              }
          }
     }
    

    【讨论】:

    • 请解释你的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-22
    相关资源
    最近更新 更多