- Remove From My Forums
-
Question
-
Прошу помочь мне с этой ошибкой, раньше программа запускалась нормально но через какое-то время начало выдавать такую ошибку.
подробная информация об использовании оперативной
(JIT) отладки вместо данного диалогового
окна содержится в конце этого сообщения.************** Текст исключения **************
System.Net.WebException: Удаленный сервер возвратил ошибку: (404) Не найден.
в System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& request)
в System.Net.WebClient.DownloadString(Uri address)
в System.Net.WebClient.DownloadString(String address)
в WeAreDevs_API.ExploitAPI.IsUpdated()
в WeAreDevs_API.ExploitAPI.LaunchExploit()
в c.g(Object , EventArgs )
в System.Windows.Forms.Control.OnClick(EventArgs e)
в System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
в System.Windows.Forms.Control.WndProc(Message& m)
в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)************** Загруженные сборки **************
mscorlib
Версия сборки: 4.0.0.0
Версия Win32: 4.7.3416.0 built by: NET472REL1LAST_B
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
—————————————-
Pain Exist
Версия сборки: 1.0.0.0
Версия Win32: 1.0.0.0
CodeBase: file:///C:/Users/%D0%96%D0%B5%D0%BD%D1%8F/Desktop/%D0%9D%D0%BE%D0%B2%D0%B0%D1%8F%20%D0%BF%D0%B0%D0%BF%D0%BA%D0%B0%20(3)/%5BFilter%5D%20Pain%20Exist%20v2.9/%5BFilter%5D%20Pain%20Exist%20v2.9/Pain%20Exist%20V2.9%20by%20Filter.exe
—————————————-
System.Windows.Forms
Версия сборки: 4.0.0.0
Версия Win32: 4.7.3324.0 built by: NET472REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
—————————————-
System
Версия сборки: 4.0.0.0
Версия Win32: 4.7.3416.0 built by: NET472REL1LAST_B
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
—————————————-
System.Drawing
Версия сборки: 4.0.0.0
Версия Win32: 4.7.3056.0 built by: NET472REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
—————————————-
WeAreDevs_API
Версия сборки: 1.0.0.0
Версия Win32: 1.0.0.0
CodeBase: file:///C:/Users/%D0%96%D0%B5%D0%BD%D1%8F/Desktop/%D0%9D%D0%BE%D0%B2%D0%B0%D1%8F%20%D0%BF%D0%B0%D0%BF%D0%BA%D0%B0%20(3)/%5BFilter%5D%20Pain%20Exist%20v2.9/%5BFilter%5D%20Pain%20Exist%20v2.9/WeAreDevs_API.DLL
—————————————-
System.Configuration
Версия сборки: 4.0.0.0
Версия Win32: 4.7.3056.0 built by: NET472REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
—————————————-
System.Core
Версия сборки: 4.0.0.0
Версия Win32: 4.7.3362.0 built by: NET472REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
—————————————-
System.Xml
Версия сборки: 4.0.0.0
Версия Win32: 4.7.3056.0 built by: NET472REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
—————————————-
FlatUI
Версия сборки: 1.0.0.0
Версия Win32: 1.0.0.0
CodeBase: file:///C:/Users/%D0%96%D0%B5%D0%BD%D1%8F/Desktop/%D0%9D%D0%BE%D0%B2%D0%B0%D1%8F%20%D0%BF%D0%B0%D0%BF%D0%BA%D0%B0%20(3)/%5BFilter%5D%20Pain%20Exist%20v2.9/%5BFilter%5D%20Pain%20Exist%20v2.9/FlatUI.DLL
—————————————-
FastColoredTextBox
Версия сборки: 2.16.23.0
Версия Win32: 2.16.23.0
CodeBase: file:///C:/Users/%D0%96%D0%B5%D0%BD%D1%8F/Desktop/%D0%9D%D0%BE%D0%B2%D0%B0%D1%8F%20%D0%BF%D0%B0%D0%BF%D0%BA%D0%B0%20(3)/%5BFilter%5D%20Pain%20Exist%20v2.9/%5BFilter%5D%20Pain%20Exist%20v2.9/FastColoredTextBox.DLL
—————————————-
System.resources
Версия сборки: 4.0.0.0
Версия Win32: 4.7.3056.0 built by: NET472REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/System.resources.dll
—————————————-
System.Windows.Forms.resources
Версия сборки: 4.0.0.0
Версия Win32: 4.7.3056.0 built by: NET472REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/System.Windows.Forms.resources.dll
—————————————-
mscorlib.resources
Версия сборки: 4.0.0.0
Версия Win32: 4.7.3056.0 built by: NET472REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/mscorlib.resources.dll
—————————————-************** Оперативная отладка (JIT) **************
Для подключения оперативной (JIT) отладки файл .config данного
приложения или компьютера (machine.config) должен иметь
значение jitDebugging, установленное в секции system.windows.forms.
Приложение также должно быть скомпилировано с включенной
отладкой.Например:
<configuration>
<system.windows.forms jitDebugging=»true» />
</configuration>При включенной отладке JIT любое необрабатываемое исключение
пересылается отладчику JIT, зарегистрированному на данном компьютере,
вместо того чтобы обрабатываться данным диалоговым окном
I am using using a Proxy file to allow our system to use ajax to load in pages from an a different subdomain of our system. I successfully did this with my first attempt, but my second attempt is giving me an error, and I’m struggling to work out why, any help would be appreciated.
Firstly this is my Proxy.aspx.cs:
protected void Page_Load(object sender, EventArgs e)
{
string proxyURL = HttpUtility.UrlDecode(Request.QueryString["u"]);
if (proxyURL != string.Empty)
{
HttpWebRequest request = (HttpWebRequest) WebRequest.Create(proxyURL);
request.Method = "POST";
request.ContentLength = 0;
HttpWebResponse response = (HttpWebResponse) request.GetResponse();
if (response.StatusCode.ToString().ToLower() == "ok")
{
string contentType = response.ContentType;
Stream content = response.GetResponseStream();
if (content != null)
{
StreamReader contentReader = new StreamReader(content);
Response.ContentType = contentType;
Response.Write(contentReader.ReadToEnd());
}
}
}
}
My HTML/Javascript is just this:
<script>
$(document).ready(function () {
$.ajax({
type: "POST",
url: "Proxy.aspx?u=<%=GetUrl()%>",
success: function (data) {
$('#iFrameHolder').html(data);
}
});
});
</script>
<div id="iFrameHolder"></div>
Then I just use the GetUrl() function to build the url of whatever page I require from the project on the subdomain.
I got this working no problem at all with one url, but for the second attempt I received this error:
System.Net.WebException: The remote server returned an error: (404) Not Found.
at System.Net.HttpWebRequest.GetResponse()
at G2F.Collective.WebApplication.Shared.Proxy.Page_Load(Object sender, EventArgs e)
in D:My DocumentsFireflyCollectiveDevSolutionWebSitesG2F.Collective.WebApplicationSharedProxy.aspx.cs:line 26
at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
That to me would suggest something was wrong with my url being built, but using Chrome’s web developer tools I can copy out the exact querystring being passed to the proxy, paste it into the browser address bar, and visit the page without any issue at all, which means there is no issue with the url being built. So I have no idea why this one returns a 404. If anyone can give me any suggestions, I’d greatly appreciate it.
I am using using a Proxy file to allow our system to use ajax to load in pages from an a different subdomain of our system. I successfully did this with my first attempt, but my second attempt is giving me an error, and I’m struggling to work out why, any help would be appreciated.
Firstly this is my Proxy.aspx.cs:
protected void Page_Load(object sender, EventArgs e)
{
string proxyURL = HttpUtility.UrlDecode(Request.QueryString["u"]);
if (proxyURL != string.Empty)
{
HttpWebRequest request = (HttpWebRequest) WebRequest.Create(proxyURL);
request.Method = "POST";
request.ContentLength = 0;
HttpWebResponse response = (HttpWebResponse) request.GetResponse();
if (response.StatusCode.ToString().ToLower() == "ok")
{
string contentType = response.ContentType;
Stream content = response.GetResponseStream();
if (content != null)
{
StreamReader contentReader = new StreamReader(content);
Response.ContentType = contentType;
Response.Write(contentReader.ReadToEnd());
}
}
}
}
My HTML/Javascript is just this:
<script>
$(document).ready(function () {
$.ajax({
type: "POST",
url: "Proxy.aspx?u=<%=GetUrl()%>",
success: function (data) {
$('#iFrameHolder').html(data);
}
});
});
</script>
<div id="iFrameHolder"></div>
Then I just use the GetUrl() function to build the url of whatever page I require from the project on the subdomain.
I got this working no problem at all with one url, but for the second attempt I received this error:
System.Net.WebException: The remote server returned an error: (404) Not Found.
at System.Net.HttpWebRequest.GetResponse()
at G2F.Collective.WebApplication.Shared.Proxy.Page_Load(Object sender, EventArgs e)
in D:My DocumentsFireflyCollectiveDevSolutionWebSitesG2F.Collective.WebApplicationSharedProxy.aspx.cs:line 26
at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
That to me would suggest something was wrong with my url being built, but using Chrome’s web developer tools I can copy out the exact querystring being passed to the proxy, paste it into the browser address bar, and visit the page without any issue at all, which means there is no issue with the url being built. So I have no idea why this one returns a 404. If anyone can give me any suggestions, I’d greatly appreciate it.
- Remove From My Forums
-
Вопрос
-
В связи с чем, при вызове метода HttpWebRequest.GetResponse(), появляется исключение WebException с сообщением: «Удалённый сервер возвратил ошибку (404) не найден»?
Ответы
-
Т.е. ресурс к которому вы обращаетесь отсутствует, его попросту нет. Если, скажем это файл или страница, его нет на диске сервера.
Сделаем содержимое сообщества лучше, вместе!
- Помечено в качестве ответа
LXGDARKEditor
27 июня 2014 г. 19:10
- Помечено в качестве ответа
Все ответы
-
Т.е. ресурс к которому вы обращаетесь отсутствует, его попросту нет. Если, скажем это файл или страница, его нет на диске сервера.
Сделаем содержимое сообщества лучше, вместе!
- Помечено в качестве ответа
LXGDARKEditor
27 июня 2014 г. 19:10
- Помечено в качестве ответа
-
А с правами пользователя относительно доступа к этому ресурсу (т.е. если у пользователя не хватает прав для доступа к ресурсу) появление этой ошибки не может быть связано?
-
Нет, в случае с привилегиями выдаётся другая ошибка. Ошибка с кодом 401.
Сделаем содержимое сообщества лучше, вместе!
-
Хорошо, спасибо. Вопрос закрыт.
- Remove From My Forums
-
Question
-
Прошу помочь мне с этой ошибкой, раньше программа запускалась нормально но через какое-то время начало выдавать такую ошибку.
подробная информация об использовании оперативной
(JIT) отладки вместо данного диалогового
окна содержится в конце этого сообщения.************** Текст исключения **************
System.Net.WebException: Удаленный сервер возвратил ошибку: (404) Не найден.
в System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& request)
в System.Net.WebClient.DownloadString(Uri address)
в System.Net.WebClient.DownloadString(String address)
в WeAreDevs_API.ExploitAPI.IsUpdated()
в WeAreDevs_API.ExploitAPI.LaunchExploit()
в c.g(Object , EventArgs )
в System.Windows.Forms.Control.OnClick(EventArgs e)
в System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
в System.Windows.Forms.Control.WndProc(Message& m)
в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)************** Загруженные сборки **************
mscorlib
Версия сборки: 4.0.0.0
Версия Win32: 4.7.3416.0 built by: NET472REL1LAST_B
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
—————————————-
Pain Exist
Версия сборки: 1.0.0.0
Версия Win32: 1.0.0.0
CodeBase: file:///C:/Users/%D0%96%D0%B5%D0%BD%D1%8F/Desktop/%D0%9D%D0%BE%D0%B2%D0%B0%D1%8F%20%D0%BF%D0%B0%D0%BF%D0%BA%D0%B0%20(3)/%5BFilter%5D%20Pain%20Exist%20v2.9/%5BFilter%5D%20Pain%20Exist%20v2.9/Pain%20Exist%20V2.9%20by%20Filter.exe
—————————————-
System.Windows.Forms
Версия сборки: 4.0.0.0
Версия Win32: 4.7.3324.0 built by: NET472REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
—————————————-
System
Версия сборки: 4.0.0.0
Версия Win32: 4.7.3416.0 built by: NET472REL1LAST_B
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
—————————————-
System.Drawing
Версия сборки: 4.0.0.0
Версия Win32: 4.7.3056.0 built by: NET472REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
—————————————-
WeAreDevs_API
Версия сборки: 1.0.0.0
Версия Win32: 1.0.0.0
CodeBase: file:///C:/Users/%D0%96%D0%B5%D0%BD%D1%8F/Desktop/%D0%9D%D0%BE%D0%B2%D0%B0%D1%8F%20%D0%BF%D0%B0%D0%BF%D0%BA%D0%B0%20(3)/%5BFilter%5D%20Pain%20Exist%20v2.9/%5BFilter%5D%20Pain%20Exist%20v2.9/WeAreDevs_API.DLL
—————————————-
System.Configuration
Версия сборки: 4.0.0.0
Версия Win32: 4.7.3056.0 built by: NET472REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
—————————————-
System.Core
Версия сборки: 4.0.0.0
Версия Win32: 4.7.3362.0 built by: NET472REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
—————————————-
System.Xml
Версия сборки: 4.0.0.0
Версия Win32: 4.7.3056.0 built by: NET472REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
—————————————-
FlatUI
Версия сборки: 1.0.0.0
Версия Win32: 1.0.0.0
CodeBase: file:///C:/Users/%D0%96%D0%B5%D0%BD%D1%8F/Desktop/%D0%9D%D0%BE%D0%B2%D0%B0%D1%8F%20%D0%BF%D0%B0%D0%BF%D0%BA%D0%B0%20(3)/%5BFilter%5D%20Pain%20Exist%20v2.9/%5BFilter%5D%20Pain%20Exist%20v2.9/FlatUI.DLL
—————————————-
FastColoredTextBox
Версия сборки: 2.16.23.0
Версия Win32: 2.16.23.0
CodeBase: file:///C:/Users/%D0%96%D0%B5%D0%BD%D1%8F/Desktop/%D0%9D%D0%BE%D0%B2%D0%B0%D1%8F%20%D0%BF%D0%B0%D0%BF%D0%BA%D0%B0%20(3)/%5BFilter%5D%20Pain%20Exist%20v2.9/%5BFilter%5D%20Pain%20Exist%20v2.9/FastColoredTextBox.DLL
—————————————-
System.resources
Версия сборки: 4.0.0.0
Версия Win32: 4.7.3056.0 built by: NET472REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/System.resources.dll
—————————————-
System.Windows.Forms.resources
Версия сборки: 4.0.0.0
Версия Win32: 4.7.3056.0 built by: NET472REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/System.Windows.Forms.resources.dll
—————————————-
mscorlib.resources
Версия сборки: 4.0.0.0
Версия Win32: 4.7.3056.0 built by: NET472REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/mscorlib.resources.dll
—————————————-************** Оперативная отладка (JIT) **************
Для подключения оперативной (JIT) отладки файл .config данного
приложения или компьютера (machine.config) должен иметь
значение jitDebugging, установленное в секции system.windows.forms.
Приложение также должно быть скомпилировано с включенной
отладкой.Например:
<configuration>
<system.windows.forms jitDebugging=»true» />
</configuration>При включенной отладке JIT любое необрабатываемое исключение
пересылается отладчику JIT, зарегистрированному на данном компьютере,
вместо того чтобы обрабатываться данным диалоговым окном
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 |
// using System.IO; using System.Xml.Linq; using System.Net; using System.Web; namespace rsh { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { button1.PerformClick(); } private void button1_Click(object sender, EventArgs e) { string[] st = richTextBox1.Lines; string langTo = "ru"; // Я зык на который нужно перевести Test1(st, langTo); } public void Test1(string[] args, string langTo) // static void Test1(string[] args, string langTo) { try { // инфо сообщение // string languagesForTranslate = "албанский sq,nанглийский en,nарабский ar,nармянский hy,nазербайджанский az,nафрикаанс af,nбаскский eu,nбелорусский be,nболгарский bg,nбоснийский bs,nваллийский cy,nвьетнамский vi,nвенгерский hu,nгаитянский(креольский) ht,nгалисийский gl,nголландский nl,nгреческий el,nгрузинский ka,nдатский da,nиврит he,nиндонезийский id,nирландский ga,nитальянский it,nиспанский es,nказахский kk,nкаталанский ca,nкиргизский ky,nкитайский zh,nкорейский ko,nлатынь la,nлатышский lv,nлитовский lt,nмалагасийский mg,nмалайский ms,nмальтийский mt,nмакедонский mk,nмонгольский mn,nнемецкий de,nнорвежский no,nперсидский fa,nпольский pl,nпортугальский pt,nрумынский ro,nрусский ru,nсербский sr,nсловацкий sk,nсловенский sl,nсуахили sw,nтаджикский tg,nтайский th,nтагальский tl,nтатарский tt,nтурецкий tr,nузбекский uz,nукраинский uk,nфинский fi,nфранцузский fr,nхорватский hr,nчешский cs,nшведский sv,nэстонский et,nяпонский ja"; // Console.WriteLine("Перечень языков переводаnn" + languagesForTranslate + "n"); // string text = File.ReadAllText(args[0]); string text = args[0]; TextTranslationAPI api = new TextTranslationAPI(); TranslateCommand languageOfText = new TranslateCommand { Type = RequestType.Detect, Parameters = new Dictionary<string, string> { { "text", text } }, ResultSelector = x => x.Attribute("lang").Value }; string languageFrom = api.GetResult(languageOfText); //Console.WriteLine("Язык текста для перевода " + languageFrom + "n"); //Console.WriteLine("Выберите из перечня языков, язык на который будет переводится текст в вашем файле:n"); //Console.WriteLine("Пример: -enn"); // string languageTo = Console.ReadLine(); // ИСХ string languageTo = langTo; string translateLanguage = languageFrom + languageTo; TranslateCommand translate = new TranslateCommand { Type = RequestType.Translate, Parameters = new Dictionary<string, string> { { "lang", translateLanguage }, { "text", text } }, ResultSelector = x => x.Element("text").Value }; string result = api.GetResult(translate); richTextBox2.Text = result; string adresOutPutFile = string.Format(@"C:Temp{0}.txt", translateLanguage); File.WriteAllText(adresOutPutFile, result); } catch (Exception ex) { richTextBox3.Text += ex.ToString(); richTextBox3.Text += "ОШИБКА, НЕВЕРНО ВВЕЛИ ЯЗЫК НА КОТОРЫЙ БУДЕТ ПЕРЕВОДИТСЯ ТЕКСТ В ВАШЕМ ФАЙЛЕ: " + ex.Message; // Console.WriteLine("ОШИБКА, НЕВЕРНО ВВЕЛИ ЯЗЫК НА КОТОРЫЙ БУДЕТ ПЕРЕВОДИТСЯ ТЕКСТ В ВАШЕМ ФАЙЛЕ: " + ex.Message); } } enum RequestType { Translate, Detect } struct TranslateCommand { public RequestType Type; public Dictionary<string, string> Parameters; public Func<XElement, string> ResultSelector; } class TextTranslationAPI { private readonly string Url; private readonly string Key; public TextTranslationAPI(string url, string key) { Url = url; Key = key; } public TextTranslationAPI() : this(@"https://translate.yandex.net/api/v1.5/tr/translate/", "trnsl.1.1.20180930T111308Z.5e8e8b704ad292c9.f7780e2f1ef62bd0d0301cae74e677ef8a62be7a") { } private string GetAction(RequestType type) { switch (type) { case RequestType.Detect: return "detect"; case RequestType.Translate: return "translate"; default: throw new ArgumentOutOfRangeException(); } } public string GetResult(TranslateCommand command) { string strUrl = Url + GetAction(command.Type) + "?key=" + Key; foreach (var parameter in command.Parameters) strUrl += "&" + parameter.Key + "=" + HttpUtility.UrlEncode(parameter.Value); WebClient webClitnt = new WebClient(); webClitnt.Encoding = Encoding.UTF8; string stringXml = webClitnt.DownloadString(strUrl); // ОШИБКА XDocument document = XDocument.Parse(stringXml); string textTranslate = command.ResultSelector(document.Root); return textTranslate; } } } } |
Ошибка 404, либо Error 404 Not Found — ошибка, которая появляется, если браузеру не удалось обнаружить на сервере указанный URL.
Сообщение об ошибке 404
Error 404 Not Found отображается по-разному: «HTTP 404 не найден», «Ошибка 404 Not Found», «404 Страница не найдена». Смысл надписи всегда остаётся тем же: страница отсутствует либо просто не работает. Not Found в переводе означает «не найдено».
Ошибка 404 — классический код ответа по протоколу HTTP. Он свидетельствует, что связь с сервером установлена, но информации по заданному запросу нет.
Однако если просто ввести в поисковую строку произвольный набор символов, то браузер не покажет ошибку 404 Not Found — появится сообщение, что установить соединение с конкретным сервером невозможно.
Разберёмся в техническом формировании ответа Error 404 Not Found.
Техническая сторона вопроса. При связи по HTTP браузер запрашивает указанный URL и ждёт цифрового ответа. То есть любой запрос пользователя направляется на сервер размещения искомого сайта. Когда браузеру удаётся связаться с сервером, он получает кодированный ответ. Если запрос корректный и страница найдена, отправляется ответ с кодом 200 OK, что соответствует благополучной загрузке. При отсутствии страницы отправляется ответ об ошибке.
Что значит код «404». В ответе 404 первая четвёрка указывает на то, что запрос был чрезмерно длительным или в самом адресе была ошибка. Ноль предполагает синтаксическую неточность. Завершающая цифра кода отображает конкретную причину ошибки — «4» означает отсутствие данной ссылки.
Какие ещё ошибки бывают. Ошибку 404 не нужно путать с другими ответами, которые указывают на невозможность связи с сервером. Например, ошибка 403 сообщает, что доступ к URL ограничен, а ответ «Сервер не найден» свидетельствует, что браузер не смог обнаружить место размещения сайта.
Google на 404 странице сообщает о возможных причинах ошибки
Причины ошибки
Причины, по которым HTTP возвращает ответ 404 Not Found:
- Неверный адрес. К примеру, при ручном наборе пользователь допустил опечатку в URL либо ссылка ведёт на несуществующую страницу.
- Битая ссылка. Это нерабочий URL, который никуда не ведёт. Данный вариант иногда возникает при внутренней перелинковке. К примеру, раньше страница существовала, а потом её удалили и забыли убрать ссылку.
- Удалённая страница. Когда пользователь попытается перейти на удалённую с сервера страницу, он также увидит ошибку 404. Ссылка для перехода может сохраниться в браузерных закладках или на сторонних ресурсах.
- Неправильный редирект на страницу с изменённым адресом. Допустим, в процессе редизайна URL изменили, но оставили без внимания связанные ссылки.
- Неполадки на сервере. Это самый редкий вариант.
В большинстве ситуаций ошибка 404 отображается, когда не удаётся обнаружить нужную страницу на доступном сервере.
Причины отсутствия страницы на сайте бывают разными
Возможные последствия для сайта
Нужно ли считать 404 ошибку опасной для сайтов? Кажется, что нет ничего плохого в том, что пользователь не смог открыть одну веб-страницу. Однако если такая ситуация будет повторяться регулярно, это чревато оттоком аудитории. Одни пользователи решат, что сайт вовсе не существует. Другие подумают, что лучше не заходить на сайт, который работает с ошибками. Третьи будут игнорировать ресурс, на котором не смогли получить обещанную информацию.
Поисковые системы относятся к Not Found более лояльно. Например, Google отмечает, что 404 страницы не влияют на рейтинг. Но если при индексации роботы будут находить все больше ошибочных страниц, вряд ли это приведёт к более высокому ранжированию.
Если вы хотите улучшить взаимодействие с посетителями, важно найти и исправить все ошибки 404 на сайте.
Как выявить ошибку
На небольшом ресурсе легко проверить работоспособность ссылок вручную. Но если на сайте сотни и тысячи страниц, без дополнительного софта не обойтись. Есть немало сервисов и программ, позволяющих находить битые ссылки. Рассмотрим некоторые из них.
Search Console Google
Консоль поиска Google позволяет находить страницы с ошибкой 404 за несколько кликов:
- Войдите в учётную запись Google и перейдите в Search Console.
- Откройте раздел «Ошибки сканирования» → «Диагностика».
- Кликните на «Not Found».
Чтобы получить список страниц с ошибками, подтвердите права на ресурс — добавьте проверочную запись TXT в записи DNS регистратора домена. Такая запись не повлияет на работу сайта. Подробнее о процедуре подтверждения, читайте в справке Google.
Для использования Search Console Google нужно подтвердить свои права на сайт
Яндекс Вебмастер
Сервис для вебмастеров от Яндекса поможет быстро найти все ошибки 404:
- Откройте Вебмастер после авторизации в Яндекс-аккаунте.
- Выберите «Индексирование» → «Доступные для поиска страницы» → «Исключённые страницы».
- В выданном списке выберите фильтр «Ошибка HTTP: 404».
Чтобы использовать Яндекс.Вебмастер, также нужно подтвердить право владения сайтом — добавить метатег в HTML-код главной страницы.
Для входа в Вебмастер авторизуйтесь в Яндексе
Screaming Frog
Для начала загрузите и установите программу на компьютер. После запуска добавьте URL проверяемого сайта и начните поиск проблем. Неработающие ссылки можно искать даже в бесплатной версии.
Инструмент SEO-паук в Screaming Frog помогает найти технические неисправности сайта
SiteAnalyzer
Эта бесплатная десктопная программа позволяет обнаружить технические погрешности на сайте. SiteAnalyzer быстро отыщет нерабочие и несуществующие ссылки.
SiteAnalyzer бесплатно найдёт неработающие URL
Как исправить ошибку Not Found
Выбор конкретного решения зависит от причины ошибки:
- Ссылка ведёт в никуда из-за неверного URL. Для решения проблемы замените ошибочную ссылку на правильный адрес, чтобы сервер отдавал код 200 OK.
- Битая ссылка. Подобная ситуация не редкость при внутренней перелинковке страниц. К примеру, ссылка есть, а саму страницу давно удалили. Решений два: удалить ссылку или заменить её на другую.
Удалять и менять ссылки вручную удобно только на небольших сайтах. Исправление ошибок на крупных порталах лучше автоматизировать. Например, с помощью специальных плагинов для внутренней перелинковки (Terms Description, Dagon Design Sitemap Generator) и для автоматического формирования адресов страниц (Cyr-To-Lat).
Чтобы ошибки 404 появлялись как можно реже, достаточно соблюдать простые рекомендации:
- Не присваивайте сложные адреса основным разделам сайта. Это снизит число ошибок, связанных с опечатками в URL.
- Не меняйте адреса страниц слишком часто. Это неудобно для пользователей и вводит в заблуждение поисковых роботов.
- Размещайте сайт на надёжном сервере. Это предотвратит ошибки, возникающие из-за неработоспособности сервера.
Мы разобрались, как найти и исправить ошибки Not Found внутри сайта. Но неработающая ссылка может быть расположена и на стороннем ресурсе. Допустим, когда-то на другом сайте разместили рекламную публикацию со ссылкой на определённую страницу. Спустя какое-то время страницу удалили. В этом случае появится ошибка 404. Устранить её можно, связавшись с администрацией ссылающегося сайта. Если же удалить/исправить ссылку нельзя, постарайтесь использовать ошибку с выгодой.
Как сделать страницу 404 полезной
Грамотно оформленная страница с ошибкой Error 404 Not Found — действенный инструмент конвертации посетителей. Ограничений по использованию страницы с ошибкой 404 нет. При этом практически все CMS позволяют настраивать дизайн этой страницы.
Что публиковать на странице 404:
- меню с кликабельными ссылками;
- ссылку на главную страницу;
- анонс последних публикаций;
- контакты для обратной связи.
При оформлении страницы-ошибки желательно опираться на рекомендации поисковиков:
- Яндекс настоятельно рекомендует, чтобы страница контрастировала с основным содержанием сайта — иные цвета, другие графические приёмы либо их отсутствие. Необходимо чётко и понятно объяснить пользователю, что запрошенной страницы не существует и предложить другое решение.
- Google советует придерживаться единого стиля оформления. Но также рекомендует понятно рассказать об ошибке и предложить полезные материалы.
Главное — по возможности отказаться от стандартной страницы 404. Подумайте, как привлечь внимание пользователя. Расскажите ему об отсутствии искомой страницы и предложите взамен что-то полезное или интересное.
Примеры оформления страниц 404
Designzillas
Мультяшная страница креативной студии привлекает внимание и её хочется досмотреть до конца. Если прокрутить страницу, можно увидеть, как из яйца вылупится дракон. При этом на странице есть ссылки на все основные разделы сайта.
Меню на сайте Designzillas есть и на 404 странице
Domenart Studio
Веб-студия «Домен АРТ» использует красочную страницу 404, оформленную в единой стилистике ресурса. Заблудившимся пользователям предлагают попробовать ещё раз ввести адрес или перейти в нужный раздел.
Контакты, поиск, меню — и всё это на 404 странице Domenart Studio
E-co
«Эко Пауэр», дистрибьютор производителя источников питания, демонстрирует короткое замыкание как символ ошибки. Посетителям предлагают перейти на главную.
Ошибка 404 «Эко Пауэр» выглядит как страница входа
Дом со всем
Компания «Дом со всем», занимающаяся бурением скважин, разместила на странице 404 свои контакты и перечень услуг. Со страницы можно перейти в любой раздел сайта или заказать обратный звонок. С таким наполнением посетителю не нужно искать дополнительную информацию где-то ещё.
Компания «Дом со всем» предлагает заказать обратный звонок
Kualo
Страница 404 на веб-хостинге Kualo может заставить пользователя забыть, зачем он сюда пришёл. Увлекательная игра притягивает внимание. В конце игры посетителю предлагают посмотреть сайт хостинга.
На странице Kualo можно просто поиграть и заработать скидки
Рано или поздно с ошибкой 404 сталкивается большинство сайтов. При регулярной проверке можно своевременно исправить неработающие ссылки, чтобы в ответ пользователи получали код 200 OK. Но для крупного ресурса лучше настроить оригинальную страницу, которая будет отображаться при появлении ошибки Not Found и подскажет посетителям, что делать дальше.
Главные мысли
- Remove From My Forums
-
Вопрос
-
В связи с чем, при вызове метода HttpWebRequest.GetResponse(), появляется исключение WebException с сообщением: «Удалённый сервер возвратил ошибку (404) не найден»?
Ответы
-
Т.е. ресурс к которому вы обращаетесь отсутствует, его попросту нет. Если, скажем это файл или страница, его нет на диске сервера.
Сделаем содержимое сообщества лучше, вместе!
-
Помечено в качестве ответа
LXGDARKEditor
27 июня 2014 г. 19:10
-
Помечено в качестве ответа
Все ответы
-
Т.е. ресурс к которому вы обращаетесь отсутствует, его попросту нет. Если, скажем это файл или страница, его нет на диске сервера.
Сделаем содержимое сообщества лучше, вместе!
-
Помечено в качестве ответа
LXGDARKEditor
27 июня 2014 г. 19:10
-
Помечено в качестве ответа
-
А с правами пользователя относительно доступа к этому ресурсу (т.е. если у пользователя не хватает прав для доступа к ресурсу) появление этой ошибки не может быть связано?
-
Нет, в случае с привилегиями выдаётся другая ошибка. Ошибка с кодом 401.
Сделаем содержимое сообщества лучше, вместе!
-
Хорошо, спасибо. Вопрос закрыт.
I have set up project to be run on IIS for some time ago and when I did press F5 it did connect no problem. But recently this stopped working and I did get this error when I press F5 / press Debug->Start debugging
:
Unable to start debugging on the web server. The remote server
returned an error: (404) Not Found.
Here is my settings:
I am not sure what happened, probably some VS updates or Windows updates, but I’ve tried to google everywhere and nothing had worked. Attach to process works fine as before, but this simpler way stopped doing the trick.
Update:
Have tried Process Monitor to figure out what is going wrong and it looks like w3wp tries to access path MyProjectFolderdebugattach.aspx
and the result is «NAME NOT FOUND». Don’t know if this is the root of the problem though.
asked Oct 31, 2017 at 7:59
Ilya ChernomordikIlya Chernomordik
27.2k26 gold badges119 silver badges203 bronze badges
11
It appears that one of my colleagues has edited the web.config
and added request filtering where he has removed the «DEBUG» verb. This disallowed debugging on F5.
After adding it (or removing request filtering) everything works fine.
P.S. A lot of other possible problems with similar error is described here
answered Nov 3, 2017 at 13:48
Ilya ChernomordikIlya Chernomordik
27.2k26 gold badges119 silver badges203 bronze badges
4
Old post but I recently had this issue and making sure that the following settings were enabled in ‘Programs and Features’ (Windows 10) fixed the issue for me:
answered Jan 24, 2020 at 23:02
GeorgeBGeorgeB
8081 gold badge8 silver badges25 bronze badges
0
In my case (Windows 10 & Visual Studio 2017) I had to install ASP.NET 3.5 and ASP.NET 4.7 under the Internet Information Services.
Click here to see the solution
answered Dec 30, 2018 at 21:22
Husam EbishHusam Ebish
4,5272 gold badges19 silver badges37 bronze badges
This happened to me because I was using the Rewrite module to redirect to https. I was running https://localhost/WebSiteName, but had put my machine name in the https binding in IIS Mgr, Default web Site, Bindings. When I removed the machine name it worked.
answered Apr 16, 2019 at 14:55
1
Recently I have faced the same issue in VS2013 Professional, instantly I get error ‘Unable to start debugging on web server». I observed that whenever my current page is MVC view (.cshtml) file and I start debugging , the error window prompts every time. As switch the current document in my project to controller (.cs) file, and starts debugging, it works properly.
So my workaround is to debug my code I have to be on (.cs) file not on (.cshtml / web.config) file. Hope that helps!
answered Oct 3, 2019 at 18:08
Another reason for this problem is that you don’t run visul studio Run as administrator.
answered May 3, 2019 at 7:02
My issue was related 405 as attached below
My issue got resolved after making my projects properties(Web and Build) as given below
answered Feb 13, 2020 at 9:02
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 |
// using System.IO; using System.Xml.Linq; using System.Net; using System.Web; namespace rsh { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { button1.PerformClick(); } private void button1_Click(object sender, EventArgs e) { string[] st = richTextBox1.Lines; string langTo = "ru"; // Я зык на который нужно перевести Test1(st, langTo); } public void Test1(string[] args, string langTo) // static void Test1(string[] args, string langTo) { try { // инфо сообщение // string languagesForTranslate = "албанский sq,nанглийский en,nарабский ar,nармянский hy,nазербайджанский az,nафрикаанс af,nбаскский eu,nбелорусский be,nболгарский bg,nбоснийский bs,nваллийский cy,nвьетнамский vi,nвенгерский hu,nгаитянский(креольский) ht,nгалисийский gl,nголландский nl,nгреческий el,nгрузинский ka,nдатский da,nиврит he,nиндонезийский id,nирландский ga,nитальянский it,nиспанский es,nказахский kk,nкаталанский ca,nкиргизский ky,nкитайский zh,nкорейский ko,nлатынь la,nлатышский lv,nлитовский lt,nмалагасийский mg,nмалайский ms,nмальтийский mt,nмакедонский mk,nмонгольский mn,nнемецкий de,nнорвежский no,nперсидский fa,nпольский pl,nпортугальский pt,nрумынский ro,nрусский ru,nсербский sr,nсловацкий sk,nсловенский sl,nсуахили sw,nтаджикский tg,nтайский th,nтагальский tl,nтатарский tt,nтурецкий tr,nузбекский uz,nукраинский uk,nфинский fi,nфранцузский fr,nхорватский hr,nчешский cs,nшведский sv,nэстонский et,nяпонский ja"; // Console.WriteLine("Перечень языков переводаnn" + languagesForTranslate + "n"); // string text = File.ReadAllText(args[0]); string text = args[0]; TextTranslationAPI api = new TextTranslationAPI(); TranslateCommand languageOfText = new TranslateCommand { Type = RequestType.Detect, Parameters = new Dictionary<string, string> { { "text", text } }, ResultSelector = x => x.Attribute("lang").Value }; string languageFrom = api.GetResult(languageOfText); //Console.WriteLine("Язык текста для перевода " + languageFrom + "n"); //Console.WriteLine("Выберите из перечня языков, язык на который будет переводится текст в вашем файле:n"); //Console.WriteLine("Пример: -enn"); // string languageTo = Console.ReadLine(); // ИСХ string languageTo = langTo; string translateLanguage = languageFrom + languageTo; TranslateCommand translate = new TranslateCommand { Type = RequestType.Translate, Parameters = new Dictionary<string, string> { { "lang", translateLanguage }, { "text", text } }, ResultSelector = x => x.Element("text").Value }; string result = api.GetResult(translate); richTextBox2.Text = result; string adresOutPutFile = string.Format(@"C:Temp{0}.txt", translateLanguage); File.WriteAllText(adresOutPutFile, result); } catch (Exception ex) { richTextBox3.Text += ex.ToString(); richTextBox3.Text += "ОШИБКА, НЕВЕРНО ВВЕЛИ ЯЗЫК НА КОТОРЫЙ БУДЕТ ПЕРЕВОДИТСЯ ТЕКСТ В ВАШЕМ ФАЙЛЕ: " + ex.Message; // Console.WriteLine("ОШИБКА, НЕВЕРНО ВВЕЛИ ЯЗЫК НА КОТОРЫЙ БУДЕТ ПЕРЕВОДИТСЯ ТЕКСТ В ВАШЕМ ФАЙЛЕ: " + ex.Message); } } enum RequestType { Translate, Detect } struct TranslateCommand { public RequestType Type; public Dictionary<string, string> Parameters; public Func<XElement, string> ResultSelector; } class TextTranslationAPI { private readonly string Url; private readonly string Key; public TextTranslationAPI(string url, string key) { Url = url; Key = key; } public TextTranslationAPI() : this(@"https://translate.yandex.net/api/v1.5/tr/translate/", "trnsl.1.1.20180930T111308Z.5e8e8b704ad292c9.f7780e2f1ef62bd0d0301cae74e677ef8a62be7a") { } private string GetAction(RequestType type) { switch (type) { case RequestType.Detect: return "detect"; case RequestType.Translate: return "translate"; default: throw new ArgumentOutOfRangeException(); } } public string GetResult(TranslateCommand command) { string strUrl = Url + GetAction(command.Type) + "?key=" + Key; foreach (var parameter in command.Parameters) strUrl += "&" + parameter.Key + "=" + HttpUtility.UrlEncode(parameter.Value); WebClient webClitnt = new WebClient(); webClitnt.Encoding = Encoding.UTF8; string stringXml = webClitnt.DownloadString(strUrl); // ОШИБКА XDocument document = XDocument.Parse(stringXml); string textTranslate = command.ResultSelector(document.Root); return textTranslate; } } } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 |
// using System.IO; using System.Xml.Linq; using System.Net; using System.Web; namespace rsh { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { button1.PerformClick(); } private void button1_Click(object sender, EventArgs e) { string[] st = richTextBox1.Lines; string langTo = "ru"; // Я зык на который нужно перевести Test1(st, langTo); } public void Test1(string[] args, string langTo) // static void Test1(string[] args, string langTo) { try { // инфо сообщение // string languagesForTranslate = "албанский sq,nанглийский en,nарабский ar,nармянский hy,nазербайджанский az,nафрикаанс af,nбаскский eu,nбелорусский be,nболгарский bg,nбоснийский bs,nваллийский cy,nвьетнамский vi,nвенгерский hu,nгаитянский(креольский) ht,nгалисийский gl,nголландский nl,nгреческий el,nгрузинский ka,nдатский da,nиврит he,nиндонезийский id,nирландский ga,nитальянский it,nиспанский es,nказахский kk,nкаталанский ca,nкиргизский ky,nкитайский zh,nкорейский ko,nлатынь la,nлатышский lv,nлитовский lt,nмалагасийский mg,nмалайский ms,nмальтийский mt,nмакедонский mk,nмонгольский mn,nнемецкий de,nнорвежский no,nперсидский fa,nпольский pl,nпортугальский pt,nрумынский ro,nрусский ru,nсербский sr,nсловацкий sk,nсловенский sl,nсуахили sw,nтаджикский tg,nтайский th,nтагальский tl,nтатарский tt,nтурецкий tr,nузбекский uz,nукраинский uk,nфинский fi,nфранцузский fr,nхорватский hr,nчешский cs,nшведский sv,nэстонский et,nяпонский ja"; // Console.WriteLine("Перечень языков переводаnn" + languagesForTranslate + "n"); // string text = File.ReadAllText(args[0]); string text = args[0]; TextTranslationAPI api = new TextTranslationAPI(); TranslateCommand languageOfText = new TranslateCommand { Type = RequestType.Detect, Parameters = new Dictionary<string, string> { { "text", text } }, ResultSelector = x => x.Attribute("lang").Value }; string languageFrom = api.GetResult(languageOfText); //Console.WriteLine("Язык текста для перевода " + languageFrom + "n"); //Console.WriteLine("Выберите из перечня языков, язык на который будет переводится текст в вашем файле:n"); //Console.WriteLine("Пример: -enn"); // string languageTo = Console.ReadLine(); // ИСХ string languageTo = langTo; string translateLanguage = languageFrom + languageTo; TranslateCommand translate = new TranslateCommand { Type = RequestType.Translate, Parameters = new Dictionary<string, string> { { "lang", translateLanguage }, { "text", text } }, ResultSelector = x => x.Element("text").Value }; string result = api.GetResult(translate); richTextBox2.Text = result; string adresOutPutFile = string.Format(@"C:Temp{0}.txt", translateLanguage); File.WriteAllText(adresOutPutFile, result); } catch (Exception ex) { richTextBox3.Text += ex.ToString(); richTextBox3.Text += "ОШИБКА, НЕВЕРНО ВВЕЛИ ЯЗЫК НА КОТОРЫЙ БУДЕТ ПЕРЕВОДИТСЯ ТЕКСТ В ВАШЕМ ФАЙЛЕ: " + ex.Message; // Console.WriteLine("ОШИБКА, НЕВЕРНО ВВЕЛИ ЯЗЫК НА КОТОРЫЙ БУДЕТ ПЕРЕВОДИТСЯ ТЕКСТ В ВАШЕМ ФАЙЛЕ: " + ex.Message); } } enum RequestType { Translate, Detect } struct TranslateCommand { public RequestType Type; public Dictionary<string, string> Parameters; public Func<XElement, string> ResultSelector; } class TextTranslationAPI { private readonly string Url; private readonly string Key; public TextTranslationAPI(string url, string key) { Url = url; Key = key; } public TextTranslationAPI() : this(@"https://translate.yandex.net/api/v1.5/tr/translate/", "trnsl.1.1.20180930T111308Z.5e8e8b704ad292c9.f7780e2f1ef62bd0d0301cae74e677ef8a62be7a") { } private string GetAction(RequestType type) { switch (type) { case RequestType.Detect: return "detect"; case RequestType.Translate: return "translate"; default: throw new ArgumentOutOfRangeException(); } } public string GetResult(TranslateCommand command) { string strUrl = Url + GetAction(command.Type) + "?key=" + Key; foreach (var parameter in command.Parameters) strUrl += "&" + parameter.Key + "=" + HttpUtility.UrlEncode(parameter.Value); WebClient webClitnt = new WebClient(); webClitnt.Encoding = Encoding.UTF8; string stringXml = webClitnt.DownloadString(strUrl); // ОШИБКА XDocument document = XDocument.Parse(stringXml); string textTranslate = command.ResultSelector(document.Root); return textTranslate; } } } } |