강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của wonnho2
wonnho2

câu hỏi đã được viết

Nhập môn FastAPI Backend Python cho người mới bắt đầu (Từ FastAPI đến SQLAlchemy bất đồng bộ) [Fullstack Part1-2]

curl -X POST http://127.0.0.1:8000/set/ -i -c cookies.txt 에러

Viết

·

258

0

세션을 실행하고 있어 curl로 실행하려고 하는데 아래와 같은 에러 메세지가 뜨네요.

Invoke-WebRequest : 매개 변수 이름 'c'이(가) 모호하므로 매개 변수를 처리할 수 없습니다. 일치하는 항목은 다음과

같습니다. -Credential -CertificateThumbprint -Certificate -ContentType.

위치 줄:1 문자:45

+ curl -X POST http://127.0.0.1:8000/set/ -i -c cookies.txt

+ ~~실행하면 위와 같은 에러메시지가 나오는데 어떻게 해결할 수 있나요? from fastapi import FastAPI,Request from fastapi.security import HTTPBasic from starlette.middleware.sessions import SessionMiddleware app=FastAPI() app.add_middleware(SessionMiddleware,secret_key="your-secret-key") @app.post("/set/") async def set_session(request:Request): request.session["username"]='smith' return {"message":"Session value"} @app.get("/get/") async def get_session(request:Request): username=request.session.get("username","Guest") return {"username":username}

pythonmvcsqlalchemyFastAPIbackend

Câu trả lời 1

0

funcoding님의 프로필 이미지
funcoding
Người chia sẻ kiến thức

안녕하세요. 답변 도우미입니다.

혹시 curl 명령을 Windows 의 PowerShell 에서 실행하셨는지 궁금하네요. 사실 저도 그런 에러를 본적은 없다보니 무엇이 문제인지 찾아보았는데요.

다음과 같은 답변을 확인하였습니다. PC 환경이 워낙 다양해서 꼭 무조건 PowerShell 에서는 안된다는 건 아닌데, 특정 환경에서는 또 이러한 문제가 있을 수 있는 것 같습니다. 다음과 같은 가이드와 함께 curl.exe 로 테스트를 해보시면 어떠실까요?

현재 발생한 오류는 curl 명령어를 Windows의 PowerShell에서 실행하려고 할 때 발생하는 문제입니다. Windows PowerShell에서는 curl 명령어를 Invoke-WebRequest로 해석하는데, 이로 인해 명령어의 옵션인 -cInvoke-WebRequest의 여러 매개변수 중 하나로 오인되어 발생하는 문제입니다.

해결 방법

  1. PowerShell에서 curl 대신 curl.exe 사용하기: PowerShell은 기본적으로 curl 명령어를 Invoke-WebRequest로 대체합니다. 이를 우회하기 위해 명령어에서 curl 대신 curl.exe를 사용해보세요.

    curl.exe -X POST http://127.0.0.1:8000/set/ -i -c cookies.txt
  2. PowerShell에서 Invoke-WebRequest 명령어 사용: PowerShell에서는 curl 대신 Invoke-WebRequest를 사용할 수 있습니다. 그러나 이 경우 -c 옵션(쿠키 저장)을 사용할 수 없기 때문에, Invoke-WebRequest로는 동일한 기능을 처리하기 어렵습니다.

    대신, curl 명령어는 Windows용으로 제공되는 Git BashWSL(Windows Subsystem for Linux) 환경에서 사용할 수 있습니다.

  3. Git Bash나 WSL을 사용: PowerShell 대신 Git Bash나 WSL을 사용하면, curl 명령어가 리눅스 환경처럼 제대로 동작합니다. Git Bash는 간단히 설치할 수 있으며, 리눅스 명령어들과 동일한 명령어를 사용할 수 있습니다.

요약

  • PowerShell에서는 curl.exe로 명령어를 실행하면 문제가 해결될 가능성이 큽니다.

  • PowerShell에서 명령어를 사용하려면 Invoke-WebRequest 대신 Git BashWSL에서 curl 명령어를 사용하는 것이 더 좋습니다.

감사합니다. 잔재미코딩 드림.

Hình ảnh hồ sơ của wonnho2
wonnho2

câu hỏi đã được viết

Đặt câu hỏi