Я пытаюсь отправить запрос в Moodle API с помощью веб-клиента в asp. net и получаю ответ с этим веб-исключением.
"System.Net.WebException: The remote server returned an error: (500) Internal Server Error.\r\n at System.Net.WebClient.UploadValues(Uri address, String method, NameValueCollection data)\r\n at HSA.Moodle.API.Controllers.CourseController.duplicateCourse1(Duplicate_course duplicate) in C:\\_Projects\\HSA\\Projects\\ApiMoodle\\HSA.Moodle.API\\HSA.Moodle.API\\Controllers\\CourseController.cs:line 709
Это мой дочерний класс, унаследованный от веб-клиента:
public class WebClientWithTimeout:WebClient
{
protected override WebRequest GetWebRequest(Uri address)
{
WebRequest wr = base.GetWebRequest(address);
wr.Timeout = 900000; // timeout in milliseconds (ms)
return wr;
}
}
Я использую этот класс в методе ниже:
try
{
WebClient wc1 = new WebClientWithTimeout();
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
wc1.QueryString.Add("wstoken", MoodleToken);
wc1.QueryString.Add("wsfunction", "core_course_duplicate_course");
wc1.QueryString.Add("moodlewsrestformat", "json");
wc1.QueryString.Add("courseid", course_id.ToString());//course id of u want to duplicate(Curriculum id)
wc1.QueryString.Add("fullname", duplicate.CourseName);//Name of the course
wc1.QueryString.Add("shortname", duplicate.CourseShortName);//shortname of the course
wc1.QueryString.Add("categoryid", category_id.ToString());//id of the created category
System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate (object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; };
var response_data1 = wc1.UploadValues(URI, "POST", wc1.QueryString);
var responseString = UnicodeEncoding.UTF8.GetString(response_data1);
return responseString;
}
catch (WebException we)
{
// add some kind of error processing
return(we.ToString());
}
catch (Exception e)
{
return "Exception Message :" + e.Message + ", Exception InnerException :" + e.InnerException + ", InnerException StackTrace :" + e.StackTrace;
}
Поэтому, пожалуйста, помогите мне решить эту проблему