c#-无法隐式转换类型';oAuthCredentials';至';字符串';
我正在尝试使用API从linkedin获取评论 但我在一些地方犯了个错误 有人能帮我解决一个错误吗 我已经写了这个代码c#-无法隐式转换类型';oAuthCredentials';至';字符串';,c#,.net,C#,.net,我正在尝试使用API从linkedin获取评论 但我在一些地方犯了个错误 有人能帮我解决一个错误吗 我已经写了这个代码 protected void Page_Load(object sender, EventArgs e) { var request = new RestRequest { Path = "posts?order=recency&category=discussion" }; var credentials = new OAu
protected void Page_Load(object sender, EventArgs e)
{
var request = new RestRequest { Path = "posts?order=recency&category=discussion" };
var credentials = new OAuthCredentials
{
ConsumerKey = "kmkzt9cqml1s",
ConsumerSecret = "hNiwIrZWGSMykoD2",
};
var client = new RestClient()
{
Authority = "http://api.linkedin.com/v1/groups/345455/",
Credentials = credentials//Here I'm getting an error
};
//Here how to create Request method
var MyInfo = client.Request(request);
String content = MyInfo.Content;
string strURL = "http://api.linkedin.com/";
System.Net.HttpWebRequest objWebRequest = null;
System.Net.HttpWebResponse objWebResponse = null;
System.IO.StreamReader streamReader = null;
string strHTML = null;
System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate(object s, System.Security.Cryptography.X509Certificates.X509Certificate certificate, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors sslPolicyErrors) { return true; };
objWebRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(strURL);
objWebRequest.PreAuthenticate = true;
objWebRequest.Method = "GET";
objWebRequest.Credentials = System.Net.CredentialCache.DefaultCredentials;
objWebResponse = (System.Net.HttpWebResponse)objWebRequest.GetResponse();
streamReader = new System.IO.StreamReader(objWebResponse.GetResponseStream());
strHTML = streamReader.ReadToEnd();
streamReader.Close();
objWebResponse.Close();
objWebRequest.Abort();
Response.ContentType = "text/xml";
Response.Write(strHTML);
Response.End();
}
RestClient.cs
public class RestClient
{
private string _consumerKey = "";
private string _consumerSecret = "";
#region Properties
public string Authority
{
get
{
return _consumerKey;
}
set { _consumerKey = value; }
}
//Here giving string
public string Credentials
{
get
{
return _consumerSecret;
}
set { _consumerSecret = value; }
}
#endregion
}
如何创建Request()方法?
有什么想法吗?提前感谢。您的
RestClient
有一个Credentials
属性,它是一个字符串;您的代码试图将非字符串的内容(在您的示例中是OAuthCredentials
)放入其中。这是不允许的,因为这两种类型之间没有隐式转换。在RestClient
中,Credentials
是字符串,但您正在影响它的OAuthCredentials
(Credentials=Credentials
)
尝试将属性的类型(和支持字段)
Credentials
更改为OAuthCredentials
Credentials
不是类型OAuthCredentials
,而是类型string
,因此无法使用Credentials
变量分配它,类型为OAuthCredentials
。由于RestClient
类引用了一个名为\u consumerSecret
的变量,诸如此类,让我们假设您确实想要这样做:
Authority = credentials.ConsumerKey;
Credentials = credentials.ConsumerSecret;
如错误所示,您正试图将
OAuthCredentials
对象(凭证)分配到RestClient
对象的字符串类型属性中:credentials
您必须执行
Credentials=Credentials.toString()
或更改RestClient
类。主题中的异常是由无效的隐式强制转换引起的。检查编译器指向您的行并解决问题。您提供的代码太常见。双击错误,您将进入导致错误的行。将鼠标悬停在作业的左侧和右侧,可以看到您使用的是不兼容的数据类型。它正在工作,谢谢,还有一件事是如何创建Request()方法我不知道,因为我不知道它应该做什么:)请检查一下