הפעלת קישור-בדפדפן עובד, ובשרת מקבל שגיאה של קריאת HTTP גרועה
-
@שמואל-ש כתב בהפעלת קישור-בדפדפן עובד, ובשרת מקבל שגיאה של קריאת HTTP גרועה:
@צבי-ש כתב בהפעלת קישור-בדפדפן עובד, ובשרת מקבל שגיאה של קריאת HTTP גרועה:
איך אתה עושה את הקריאה בשרת?
$url=("......."); $directions = json_decode(file_get_contents("$url"),true);
תוכל לשלוח לאישי את הכתובת אליה אתה מנסה לגשת?
-
@צבי-ש כתב בהפעלת קישור-בדפדפן עובד, ובשרת מקבל שגיאה של קריאת HTTP גרועה:
תוכל לשלוח לאישי את הכתובת אליה אתה מנסה לגשת?
לאיפה?
אגב, בשגיאה הוא מציג לי את הקישור שאליו הוא עשה את הקריאה, ושמתי לב שהוא מוסיף אחרי כל פרמטר-לפני סימן ה & את התווים amp; מאוד יכול להיות שהם הגורמים לבעיה, השאלה מה זה הדבר הזה?
יודגש כי ניסיתי גם להריץ את הקישור ללא משתנים אלא רק קישור אחד שלם עם פרמטרים בקישור ולא משתנים-בדיוק כמו ההרצה בדפדפן, וזה לא עזר כך שהבעיה היא לא במשתנים או משהו כזה. -
@dovid @צבי-ש ניסיתי להפעיל את הקישור בדרך אחרת ש @צבי-ש נתן לי, ועכשיו הוא לא נותן לי את השגיאה הנ"ל, אך הוא לא מחזיר לי את מה שגוגל מחזיר לי.
הקוד שהוספתי:$curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://script.google.com/macros/s/******', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'GET', )); $response = curl_exec($curl); curl_close($curl);
יש פה טעות?
-
@dovid עכשיו ניסיתי להפעיל את הקישור בהוספת urlencode לפני זה, אז אין לי את השגיאה הנ"ל, אבל יש לי שגיאה משהו ששם הקובץ ארוך מדי...
Warning: file_get_contents(https%3A%2F%2Fscript.google.com%2Fmacros%2Fs%2F*****0ywLmr5w%2Fexec%3FOrigin%3D%D7%93%D7%95%D7%91%D7%A8+%D7%A9%D7%9C%D7%95%D7%9D+%D7%99%D7%A8%D7%95%D7%A9%D7%9C%D7%99%D7%9D%26Destination%3D%D7%A0%D7%94%D7%A8%D7%93%D7%A2%D7%90+%D7%91%D7%99%D7%AA+%D7%A9%D7%9E%D7%A9): Failed to open stream: File name too long in /usr/share/nginx/html/**.php on line 22
התקדמנו מעט? מה זה הבעיה הזאת?
עריכה: מחיפוש גוגל אני רואה שלכאורה הפיתרון שלי יהיה השתמשות עם CURL, הבעיה היא שלא הבנתי איך עובדים עם זה, יש מישהו שיכול להסביר לי/להביא לי דוגמא של שימוש עם הפונקצייה הנ"ל תוך כדי שליחת קישור+פרמטרים
מודבר בשפת PHP -
@שמואל-ש
תשובת רובי הבוט
[רק אציין אין לי שמץ של מושג בגוגל סקריפט, אני רק מנסה לעזור]נראה ששם הקובץ ארוך מדי מכדי שהשרת יוכל לטפל בו. זה יכול לקרות כאשר כתובת האתר ארוכה מדי, ובמקרה זה, כתובת האתר ארוכה בגלל התווים המקודדים. דרך אחת לפתור בעיה זו היא להשתמש בבקשת POST במקום בבקשת GET.
הנה דוגמה לאופן שבו אתה יכול להשתמש בבקשת POST כדי להביא את התוכן של כתובת האתר:
$url = 'https://script.google.com/macros/s/*****0ywLmr5w/exec'; $data = array('Origin' => 'דובר שלום ירושלים', 'Destination' => 'נהרדעא בית שמש'); $options = array( 'http' => array( 'header' => "Content-type: application/x-www-form-urlencoded\r\n", 'method' => 'POST', 'content' => http_build_query($data), ), ); $context = stream_context_create($options); $result = file_get_contents($url, false, $context); echo $result;
בדוגמה זו, אנו משתמשים בפונקציה http_build_query כדי לקודד את הנתונים כמחרוזת מקודדת כתובת URL, ואנו מעבירים את המחרוזת הזו כתוכן בקשת ה-POST. בדרך זו, נוכל למנוע את הבעיה של כתובת האתר ארוכה מדי.
אנא החלף את ה-*****0ywLmr5w במזהה הסקריפט הנכון ובדוק את הקוד הזה. הודע לי אם יש לך שאלות נוספות.
-
@לעזור-לכולם כתב בהפעלת קישור-בדפדפן עובד, ובשרת מקבל שגיאה של קריאת HTTP גרועה:
[רק אציין אין לי שמץ של מושג בגוגל סקריפט, אני רק מנסה לעזור]
אני משתמש עם שפת PHP
ואני צריך לקבל תשובה מההרצה, כך ששליחה ב POST לא טוב לי, לא? -
@לעזור-לכולם @dovid @צבי-ש בסוף מה שעזר לי, זה משהו ש chat GPT אמר לי, פשוט לשלוח ככה את הקישור והפרמטרים:
$params = array( '1' => '****', '2' => '****' ); $url = 'https://script.google.com/macros/s/******/exec?' . http_build_query($params); $response = file_get_contents($url);
תודה רבה לכל אלו שניסו ורצו לעזור לי!